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