Используя 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в одном не позволяет использовать его в другом.
Q1: Знаете ли вы, это ошибка или предполагаемое поведение и почему?
Q2: Видите ли вы другие варианты, чтобы исправить это, чем с помощью HttpHeadersMoreModuleмодуля?
add_headerвнутриlocationдирективы, но я до сих пор не вижу этот заголовок добавлен - есть идеи?