Используя 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
директивы, но я до сих пор не вижу этот заголовок добавлен - есть идеи?