HTTP 502 5 минут на чтение

Ошибка 502 Bad Gateway

502 означает, что сервер принял соединение, но не получил ответ от внутреннего сервиса — PHP-FPM, приложения или upstream-сервера. Сайт технически «жив», но страницы не отдаются.

Что это значит

Балансировщик (nginx, Cloudflare, ELB) получает запрос и передаёт его приложению. Если приложение не отвечает за отведённое время, обрывает соединение или отдаёт некорректный ответ — балансировщик возвращает 502. Для пользователя это выглядит как «сайт не работает», хотя веб-сервер отвечает.

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

  • Упал PHP-FPM или app-сервер — самая частая причина после деплоя.
  • Исчерпан пул воркеров — приложение живо, но не успевает обрабатывать запросы.
  • Неверный upstream в конфиге — nginx смотрит в старый сокет или порт.
  • Таймаут вышестоящего сервиса — запрос к базе или внешнему API висит дольше лимита.
  • Переполнен диск или память — процесс не может писать логи или создавать сокеты.
  • Блокировка WAF — защита отдаёт 502 вместо понятной ошибки.

Диагностика за 15 минут

  1. Проверьте код ответа с внешних точек: если 502 только с одной — проблема в конкретном сервере.
  2. Откройте /var/log/nginx/error.log — там будет upstream timed out, connect() failed или no live upstreams.
  3. Проверьте, что бэкенд запущен: systemctl status php8.2-fpm, curl на локальный порт.
  4. Сопоставьте время начала ошибки с деплоем, изменением конфига и нагрузкой.
  5. Проверьте ресурсы: диск, память, лимиты файловых дескрипторов.
Если 502 совпал с релизом — не ищите причину в конфиге. Сначала откатите версию: это быстрее и безопаснее, чем диагностика под нагрузкой.

Как исправить

КтоДействие
Владелец сайта Сообщить подрядчику время начала, регионы и коды; проверить, не было ли деплоя или смены тарифа хостинга.
Разработчик Проверить логи приложения, таймауты запросов к БД и внешним API, откатить последний релиз.
Администратор Проверить пул процессов, лимиты, сокеты, ресурсы сервера; увеличить таймауты только после устранения причины.

Как не допустить повторения

  • Включите мониторинг доступности с проверкой каждую минуту и подтверждением с трёх точек.
  • Настройте алерт на деградацию: рост p95 и доли 5xx предупреждает о проблеме раньше, чем 502.
  • Добавьте проверку после деплоя: сценарий «открыть главную → корзина → оплата».
  • Держите health-check эндпоинт, который проверяет зависимости, а не просто отдаёт 200.

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

502 и 504 — в чём разница?

502 — upstream ответил некорректно или закрыл соединение; 504 — upstream не ответил за отведённое время. На практике обе ошибки часто означают одно: бэкенд не справляется.

Почему 502 видит только часть пользователей?

Значит, проблема на одном из серверов за балансировщиком или в одном регионе. Проверка из нескольких точек показывает это сразу.

Может ли 502 отдавать сам антивирус или WAF?

Да. Некоторые WAF и прокси возвращают 502 при блокировке. Проверьте журнал защиты и добавьте IP мониторинга в исключения.