Конфигурация моего сервера выглядит так: 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, когда файл удаляется.
Обычно это происходит, если вы настройте php для отображения ошибок:
php_admin_value[display_errors] = On
nginx считает сообщение об ошибке действительной страницей и изменяет код состояния http.
Ссылка: https://stackoverflow.com/questions/11421240/why-does-display- error-change-the-http-status-code