Mit nginx 1.2.1 kann ich mehrere Header add_headerwie folgt hinzufügen :
server {
listen 80;
server_name localhost;
root /var/www;
add_header Name1 Value1; <=== HERE
add_header Name2 Value2; <=== HERE
location / {
echo "Nginx localhost site";
}
}
Das Ergebnis
GET /
HTTP/1.1 200 OK
Name1: Value1
Name2: Value2
Sobald ich jedoch die darin enthaltene add_headerDirektive verwende location, werden die anderen add_headerDirektiven unter serverignoriert
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";
}
}
Das Ergebnis
GET /
HTTP/1.1 200 OK
Name3: Value3
Name4: Value4
Die Dokumentation besagt, dass beide serverund locationgültig sind contextund nicht besagt, dass die Verwendung add_headerin einem die Verwendung in dem anderen verhindert.
Frage 1: Wissen Sie, ob dies ein Fehler oder das beabsichtigte Verhalten ist und warum?
F2: Sehen Sie andere Optionen, um dies zu beheben, als die Verwendung des HttpHeadersMoreModuleModuls?
add_headerinnerhalb derlocationDirektive, aber ich sehe immer noch nicht, dass dieser Header hinzugefügt wurde - irgendwelche Ideen?