En utilisant nginx 1.2.1, je peux ajouter plusieurs en-têtes en utilisant add_header
comme 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_header
directive à l'intérieur location
, les autres add_header
directives sous server
sont 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 server
et location
sont valides context
et n'indique pas que l'utilisation add_header
dans 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 HttpHeadersMoreModule
module?
add_header
intérieur de lalocation
directive, mais je ne vois toujours pas cet en-tête ajouté - des idées?add_header
? Si oui, assurez-vous qu'un code de réponse provient de la documentation, voir nginx.org/r/add_header .