En utilisant nginx 1.2.1, je peux ajouter plusieurs en-têtes en utilisant add_headercomme suit:
server {
listen 80;
server_name localhost;
root /var/www;
add_header Name1 Value1; <=== HERE
add_header Name2 Value2; <=== HERE
location / {
echo "Nginx localhost site";
}
}
Le résultat
GET /
HTTP/1.1 200 OK
Name1: Value1
Name2: Value2
Cependant, dès que j'utilise la add_headerdirective à l'intérieur location, les autres add_headerdirectives sous serversont ignorées
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";
}
}
Le résultat
GET /
HTTP/1.1 200 OK
Name3: Value3
Name4: Value4
La documentation indique que les deux serveret locationsont valides contextet n'indique pas que l'utilisation add_headerdans l'un empêche de l'utiliser dans l'autre.
Q1: Savez-vous s'il s'agit d'un bogue ou du comportement souhaité et pourquoi?
Q2: voyez-vous d'autres options pour résoudre ce problème que d'utiliser le HttpHeadersMoreModulemodule?
add_headerintérieur de lalocationdirective, mais je ne vois toujours pas cet en-tête ajouté - des idées?