Ошибка 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.
Подключить бесплатноНастройка занимает пару минут