Mit nginx 1.2.1 kann ich mehrere Header add_header
wie 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_header
Direktive verwende location
, werden die anderen add_header
Direktiven unter server
ignoriert
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 server
und location
gültig sind context
und nicht besagt, dass die Verwendung add_header
in 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 HttpHeadersMoreModule
Moduls?
add_header
innerhalb derlocation
Direktive, aber ich sehe immer noch nicht, dass dieser Header hinzugefügt wurde - irgendwelche Ideen?add_header
? Wenn ja, stellen Sie sicher, dass ein Antwortcode aus den Dokumenten stammt (siehe nginx.org/r/add_header) .