Как вернуть код ошибки 502 вместо 404 при сбое PHP-FPM

Конфигурация моего сервера выглядит так: Nginx1 (proxycache) <---------> Nginx2 <-> PHP-FPM

Когда PHP-FPM выходит из строя из-за того, что процесс не работает (ошибка подключения к unix: /run/php/php7.0- Ошибка fpm.sock: нет такого файла или каталога при подключении к восходящему потоку) или из-за того, что был достигнут pm.max_children Nginx2 возвращает 404. Я посмотрел, установлено ли это поведение где-либо в моей конфигурации, но похоже, что оно используется по умолчанию.

Если Nginx1 получит код ошибки 502 от Nginx2, он покажет устаревшую версию страницы, и поэтому я хочу, чтобы он возвращал код 502. Я знаю, что могу настроить Nginx на использование устаревшей версии, когда он получает 404 от апстрима, но нет никакого способа отличить это от обычного 404, когда файл удаляется.

3
задан 28 May 2018 в 14:06
1 ответ

Обычно это происходит, если вы настройте php для отображения ошибок:

 php_admin_value[display_errors] = On

nginx считает сообщение об ошибке действительной страницей и изменяет код состояния http.

Ссылка: https://stackoverflow.com/questions/11421240/why-does-display- error-change-the-http-status-code

3
ответ дан 3 December 2019 в 06:26

Теги

Похожие вопросы