Використовуючи 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
директиви, але я до сих пір не бачу цей заголовок додана - будь-які ідеї?