Исправление ошибки Nginx 502 Bad Gateway: пошаговое руководство

В этом подробном руководстве описаны распространенные причины возникновения ошибки Nginx 502, включая проблемы с конфигурацией прокси-сервера, а также приведены четкие и практические шаги для их быстрой диагностики и устранения.

Исправление ошибки Nginx 502 Bad Gateway: пошаговое руководство

Ошибка 502 Bad Gateway — одна из самых распространенных проблем, с которыми сталкиваются администраторы при работе с Nginx. Она означает, что сервер Nginx, выступая в роли прокси-сервера, получил неверный ответ от вышестоящего сервера (upstream), например, PHP-FPM, Gunicorn или Node.js.

Распространенные причины

  1. Сервер приложений не запущен: Процесс, который должен обрабатывать запросы, упал или не был запущен.
  2. Неверная конфигурация прокси: Ошибки в файле конфигурации nginx.conf или файлах виртуальных хостов.
  3. Перегрузка сервера: Сервер приложений не справляется с потоком запросов и закрывает соединение.
  4. Проблемы с файерволом: Блокировка соединений между Nginx и бэкендом.

Пошаговое устранение неполадок

1. Проверьте статус бэкенда

Сначала убедитесь, что ваш сервер приложений работает. Если вы используете PHP-FPM, выполните:

systemctl status php-fpm

Если сервис остановлен, запустите его:

systemctl start php-fpm

2. Изучите логи Nginx

Логи — ваш лучший помощник. Проверьте файл ошибок Nginx:

sudo tail -f /var/log/nginx/error.log

Ищите сообщения, указывающие на причину сбоя (например, connect() failed (111: Connection refused)).

3. Проверьте конфигурацию прокси

Убедитесь, что параметры fastcgi_pass или proxy_pass указывают на правильный сокет или IP-адрес:

location ~ \.php$ {
    fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    # ... остальные настройки
}

4. Перезагрузите Nginx

После внесения изменений всегда проверяйте конфигурацию на наличие синтаксических ошибок и перезагружайте сервер:

sudo nginx -t
sudo systemctl restart nginx

Заключение

Ошибка 502 обычно указывает на то, что «мостик» между Nginx и вашим приложением сломан. Следуя этим шагам, вы сможете быстро локализовать и устранить проблему.