ใช้nginx 1.2.1ฉันสามารถเพิ่มหลายส่วนหัวโดยใช้add_headerดังนี้:
server {
listen 80;
server_name localhost;
root /var/www;
add_header Name1 Value1; <=== HERE
add_header Name2 Value2; <=== HERE
location / {
echo "Nginx localhost site";
}
}
ผลลัพธ์
GET /
HTTP/1.1 200 OK
Name1: Value1
Name2: Value2
อย่างไรก็ตามฉันทันทีที่ฉันใช้add_headerคำสั่งภายในคำสั่งlocationอื่นadd_headerภายใต้serverจะถูกละเว้น
server {
listen 80;
server_name localhost;
root /var/www;
add_header Name1 Value1; <=== HERE
add_header Name2 Value2; <=== HERE
location / {
add_header Name3 Value3; <=== HERE
add_header Name4 Value4; <=== HERE
echo "Nginx localhost site";
}
}
ผลลัพธ์
GET /
HTTP/1.1 200 OK
Name3: Value3
Name4: Value4
เอกสารบอกว่าทั้งสองserverและlocationมีความถูกต้องcontextและไม่ได้ของรัฐที่ใช้add_headerในการป้องกันการใช้มันในอื่น ๆ
คำถามที่ 1: คุณรู้หรือไม่ว่านี่เป็นข้อผิดพลาดหรือพฤติกรรมที่ต้องการและทำไม
Q2: คุณเห็นตัวเลือกอื่น ๆ เพื่อรับการแก้ไขนี้กว่าใช้HttpHeadersMoreModuleโมดูลหรือไม่?
add_headerในlocationคำสั่ง แต่ฉันยังไม่เห็นส่วนหัวนี้เพิ่ม - ความคิดใด ๆ