502 bad gateway nginx

502 bad gateway nginx — ошибка, которая выводится веб-сервером Nginx в случае если он не может дождаться ответа от какого-либо сервиса. Nginx сам по себе не может обрабатывать скрипты, поэтому чаще всего он является фронтэндом для другого сервиса. Это Apache или PHP-FPM в случае если обрабатываются PHP скрипты, также бэкендом может быть Unicorn UWSGI или что-то иное.

 

502 bad gateway nginx как исправить ошибку

Поскольку Nginx обычно просто проксирует запросы сам только отдавая статику работа приложения зависит также от бэкенда.

Ошибка 502 nginx чаще всего выводится потому, что бэкенд упал. Устранить ее можно выяснив куда проксируются запросы и восстановив работу второго ключевого сервиса.

 

Просматриваем файл и выясняем куда Nginx должен направлять запросы

less /etc/nginx/sites-enabled/SITENAME

 

Затем пробуем перезапустить этот сервис. Для самых распространенных бэкендов:

Apache

/etc/init.d/apache2 restart

PHP-FPM

/etc/init.d/php-fpm restart

 

Если возникают ошибки стоит смотреть логи соответствующего сервиса и искать ошибку в конфигурации.

Она там будет только в случае если конфиги редактировались. Самая частая причина 502 nginx в возникшей по какой-то причине нагрузки, которую бэкенд не смог обработать и экстренно завершил свою работу.

Простой перезапуск для этого случая решит вопрос

 

 

Бэкенд может быть вынесен на другую серверную машину — это также можно выяснить изучив конфиг Nginx. Процесс устранения ошибки будет отличаться только тем, что запускать службы потребуется предварительно подключившись к нужному серверу по SSH.

 

В качестве превентивной меры можно настроить автоматический запуск служб после падения запустив их под runit или, например, установив пакет для мониторинга Monit, который будет запускать службы не дождавшись от них ответа.