У меня возникла проблема со случайными ошибками шлюза 502 с использованием nginx и php-fpm. В моем случае я обнаружил сценарий, в котором различные параметры error_log php.ini и уровни error_reporting вызывали ошибки случайных 502 шлюзов.
Изменив настройки php.ini error_reporting и error_log, я смог удалить ошибки шлюза 502, но, что еще более важно, я смог увидеть, какие реальные ошибки php были в журнале и исправить их.
Основная проблема заключалась в том, что если "error_reporting был установлен для отображения уведомлений", "error_logging = On", тогда мне нужно было убедиться, что error_log был установлен в допустимый путь, который был доступен для записи на сервер.
// !!! 502 Gateway Error (unhappy server)
error_reporting = E_ALL & E_NOTICE
; error_log = php_errors.log (note this is commented)
// Happy Server, no 502 gateway error
error_reporting = E_ALL & E_NOTICE
error_log = /valid/log/path/and/permissions
// Happy Server, no 502 gateway error
error_reporting = E_CORE_ERROR
; error_log = php_errors.log (note this is commented)
Обратите внимание, что фактические ошибки были уведомлениями php... однако ngingx выбрасывал 502 ошибки шлюза для уведомлений php, связанных с не заданными свойствами.
Также обратите внимание, что 502 ошибки шлюза не запускались при каждом уведомлении php.
Надеюсь, это избавит кого-то от разочарования!