Nginx add_header для сторінки 50 *


19

Наразі я намагаюся отримати nginx, щоб додати заголовок до відповіді, коли він надсилає якусь помилку 50 *. Я вже маю директиву add_header на блоці http, і це дотримується всіх запитів, за винятком помилок. Я також спробував таке в одному зі своїх привидів:

location /mediocregopheristhecoolest {
    add_header X-Test "blahblahblah";
    return 502;                                                                                                    
}       

Перехід на цю сторінку дає мені 502, але жодного заголовка. Це просто щось, що nginx не робить, чи я роблю це неправильно?


Чи можете ви опублікувати вихід $ curl -I <url> // mediocregopheristhecoolest
Chida

Відповіді:


21

У документації зазначено, що add_header "Додає вказане поле до заголовка відповіді за умови, що код відповіді дорівнює 200, 204, 206, 301, 302, 303, 304 або 307. Значення може містити змінні." Таким чином, це не працює з 502.

Я забув додати, що ви можете використовувати сторонні заголовки сторонніх модулів для додавання заголовків до інших кодів. Вам, мабуть, доведеться перекомпілювати, щоб додати його.


Дивіться коментар marat: нова версія nginx підтримує встановлення заголовка незалежно від коду відповіді
Laurens Rietveld

44

Оскільки Nginx 1.7.5 ви можете використовувати alwaysдля додавання заголовка незалежно від коду відповіді:

add_header X-Test "blahblahblah" always;

1
Розчаровує, версія в репортажі Debian наразі застаріла (1.6.x), але nginx підтримує власне сховище з останньою стабільною збіркою (1.8.x зараз).
kungphu

Якщо ви хочете оновити вже працюючу систему по Debian, Backports безпечніше ... packages.debian.org/jessie-backports/httpd/nginx вгору по течії використовувати пакет іншу організацію пакету (може викликати деякий час простою замість гладкої Nginx поновлення механізму ). І його післякрипт видаляє журнали. І ще кілька невеликих відмінностей ...
Лайош Верес
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.