Исправление ошибки Nginx 502 Bad Gateway: пошаговое руководство
В этом подробном руководстве описаны распространенные причины возникновения ошибки Nginx 502, включая проблемы с конфигурацией прокси-сервера, а также приведены четкие и практические шаги для их быстрой диагностики и устранения.
Исправление ошибки Nginx 502 Bad Gateway: пошаговое руководство
Ошибка 502 Bad Gateway — одна из самых распространенных проблем, с которыми сталкиваются администраторы при работе с Nginx. Она означает, что сервер Nginx, выступая в роли прокси-сервера, получил неверный ответ от вышестоящего сервера (upstream), например, PHP-FPM, Gunicorn или Node.js.
Распространенные причины
- Сервер приложений не запущен: Процесс, который должен обрабатывать запросы, упал или не был запущен.
- Неверная конфигурация прокси: Ошибки в файле конфигурации
nginx.confили файлах виртуальных хостов. - Перегрузка сервера: Сервер приложений не справляется с потоком запросов и закрывает соединение.
- Проблемы с файерволом: Блокировка соединений между 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 и вашим приложением сломан. Следуя этим шагам, вы сможете быстро локализовать и устранить проблему.