HTTP 502 Bad Gateway
Жалоба посредника: прокси или CDN обратились к настоящему серверу и получили мусор — или вообще ничего — в ответ.
Что означает HTTP 502
HTTP 502 Bad Gateway приходит от промежуточного звена — nginx, балансировщика нагрузки, Cloudflare — которое переслало ваш запрос вышестоящему серверу и получило некорректный ответ: отказ в соединении, сбой посреди ответа или байты, не разбираемые как HTTP.
Виновник почти никогда не сам прокси; обычно это находящийся за ним сервер приложения, который недоступен, перегружен или не отвечает.
Частые причины ошибок 502
- Сервер приложения (PHP-FPM, Node, gunicorn и т.д.) упал или не запущен.
- Прокси указывает на неверный порт/сокет, либо файрвол блокирует соединение с вышестоящим сервером.
- Ответ вышестоящего сервера превысил буферы или истёк тайм-аут посреди передачи.
- Деплой перезапустил бэкенды во время активного трафика.
- С CDN вроде Cloudflare: origin-сервер недоступен, при этом edge-узел работает нормально.
Как исправить со стороны посетителя
- Перезагрузите через минуту — 502 во время деплоев проходят сами.
- Проверьте страницу статуса сервиса, если проблема повторяется.
Как исправить со стороны разработчика
- Проверьте, жив ли вышестоящий процесс и слушает ли он адрес, который ожидает прокси.
- Читайте лог ошибок прокси — nginx точно указывает причину (connect() failed, upstream prematurely closed и т.д.).
- Проверьте порты, пути unix-сокетов и правила файрвола между прокси и приложением.
- Добавьте health-check'и, чтобы балансировщик нагрузки прекратил направлять трафик на нерабочие инстансы.
Пример ответа
HTTP/1.1 502 Bad Gateway Server: nginx Content-Type: text/html <html><body><h1>502 Bad Gateway</h1></body></html>
Частые вопросы
В чём разница между 502 и 504?
502 означает, что вышестоящий сервер ответил чем-то некорректным (или отказал в соединении); 504 означает, что он вообще не ответил в течение таймаута.
Почему Cloudflare показывает 502?
Edge-узел Cloudflare не смог получить корректный ответ от вашего origin-сервера — origin недоступен, не отвечает или возвращает некорректные ответы.
Является ли 502 временной ошибкой?
Обычно да — деплои и перезапуски вызывают кратковременные 502. Устойчивые 502 означают, что бэкенд действительно недоступен или неправильно настроен.