Ошибка 502 Bad Gateway: как найти и починить

502 значит, что фронтовый сервер (обычно nginx) сходил за ответом к вашему приложению и получил в ответ мусор или ничего. Виноват не браузер и не провайдер — сломано звено между веб-сервером и кодом сайта.

Подключить бесплатноНастройка занимает пару минут

Где именно рвётся цепочка

Запрос идёт по маршруту «браузер → nginx → приложение (PHP-FPM, Node, Python) → база». 502 появляется на втором стыке: nginx жив и отвечает, а процесс приложения умер, перезапускается или не слушает свой порт и сокет.

Частые причины

  • Приложение упало и не поднялось: закончилась память, процесс убит OOM-killer.
  • Перезапуск во время деплоя — секунды, когда старый процесс уже остановлен, а новый ещё не слушает.
  • Неверный upstream в конфиге: сменился порт или путь к сокету.
  • Приложение не выдерживает нагрузку — очередь воркеров переполнена.
  • Слишком долгий ответ: связка отваливается по proxy_read_timeout, отдавая 502 вместо 504.

Что проверить по шагам

  • Посмотрите error.log nginx: там прямо написано «connect() failed» или «upstream prematurely closed connection».
  • Проверьте, что процесс приложения жив и слушает нужный порт или сокет.
  • Гляньте свободную память и лимиты воркеров: 502 под нагрузкой почти всегда об этом.
  • Сверьте время сбоя с временем деплоя — короткие 502 при выкате лечатся graceful reload.
sudo tail -n 100 /var/log/nginx/error.log
systemctl status php8.2-fpm   # или ваш процесс
ss -lntp | grep 9000

Как не узнавать о 502 от клиентов

Мониторинг Logsy стучится в ваши адреса раз в минуту и ждёт конкретный код ответа. Как только вместо 200 приходит 502, уведомление уходит на почту и в Telegram — с адресом, кодом и временем. Если ошибка плавающая и ловится только у части посетителей, её видно в логе сессий: там сохраняется сам упавший запрос.

Частые вопросы

502 пропадает при обновлении страницы — это нормально?

Это признак плавающей проблемы: приложение перезапускается или не справляется с нагрузкой. Один запрос попадает в живой процесс, другой — в мёртвый.

Что делать посетителю, если сайт отдаёт 502?

Ничего: ошибка на стороне сайта. Можно подождать пару минут и повторить попытку — часто сбой длится недолго.

Как отличить 502 от 504?

При 502 приложение ответило некорректно или разорвало соединение, при 504 не ответило вообще и nginx устал ждать.

Узнавайте о 502 через минуту, а не через жалобу

Проверка ключевых адресов раз в минуту с ожидаемым кодом ответа и алертом в Telegram.

Подключить бесплатно

Настройка занимает пару минут