Nginx add_header สำหรับหน้า 50 *


19

ฉันกำลังพยายามรับ nginx เพื่อเพิ่มส่วนหัวในการตอบสนองเมื่อมันส่งข้อผิดพลาด 50 * บางชนิด ฉันมีคำสั่ง add_header ในบล็อก http แล้วและนั่นก็เป็นที่เคารพสำหรับคำขอทั้งหมดยกเว้นดูเหมือนว่าข้อผิดพลาด ฉันยังลองต่อไปนี้ใน vhosts ของฉัน:

location /mediocregopheristhecoolest {
    add_header X-Test "blahblahblah";
    return 502;                                                                                                    
}       

การไปที่หน้านั้นทำให้ฉันมี 502 แต่ไม่มีส่วนหัว นี่เป็นเพียงสิ่งที่ nginx ไม่ได้ทำหรือฉันทำผิดหรือเปล่า?


คุณช่วยโพสต์ผลลัพธ์ของ $ curl -I <url> // mediocregopheristhecoolest ได้
ไหม

คำตอบ:


21

เอกสารประกอบระบุว่า add_header "เพิ่มเขตข้อมูลที่ระบุในส่วนหัวการตอบสนองโดยที่รหัสการตอบสนองเท่ากับ 200, 204, 206, 301, 302, 303, 304 หรือ 307 ค่าอาจมีตัวแปร" ดังนั้นมันจึงไม่ทำงานกับ 502

ฉันลืมที่จะเพิ่มว่าคุณสามารถใช้โมดูลส่วนหัวของบุคคลที่สามมากขึ้นเพื่อเพิ่มส่วนหัวไปยังรหัสอื่น ๆ คุณอาจต้องคอมไพล์อีกครั้งเพื่อเพิ่ม


ดูความคิดเห็นของ marat: รุ่น nginx ใหม่รองรับการตั้งค่าส่วนหัวโดยไม่คำนึงถึงรหัสการตอบสนอง
Laurens Rietveld

44

ตั้งแต่ Nginx 1.7.5 คุณสามารถใช้alwaysเพื่อเพิ่มส่วนหัวโดยไม่คำนึงถึงรหัสการตอบสนอง:

add_header X-Test "blahblahblah" always;

1
เฉื่อยชารุ่นใน repos ของ Debian ปัจจุบันล้าสมัย (1.6.x) แต่ nginx รักษาพื้นที่เก็บข้อมูลของตัวเองด้วยการสร้างความมั่นคงล่าสุด (1.8.x ตอนนี้)
kungphu

หากคุณต้องการอัปเกรดระบบเดเบียนที่ใช้งานไปได้เดบอร์แบ็กนั้นปลอดภัยกว่า ... packages.debian.org/jessie-backports/httpd/nginx แพ็คเกจอัปสตรีมใช้แพ็คเกจองค์กรต่างกัน ) และสคริปต์ postrm จะลบบันทึก และคู่ของความแตกต่างของขนาดเล็กอื่น ๆ ...
Lajos Veres
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.