Что означает ошибка 502
Статус-код HTTP 502 Bad Gateway сообщает, что сервер, выступающий в роли шлюза или прокси-посредника, получил некорректный ответ от вышестоящего сервера. Проще говоря, промежуточное звено (балансировщик нагрузки, CDN или локальный прокси) пыталось связаться с основным сервером, но тот вернул пустоту, разорвал соединение или ответил с нарушением протокола. Вы увидите это сообщение в браузере при попытке открыть сайт, веб-приложение или API-эндпоинт.
Причины возникновения
Ошибка 502 редко связана с аппаратной поломкой. Чаще всего её провоцируют следующие факторы:
- Перегрузка или аварийная остановка процесса бэкенда (PHP-FPM, Node.js, Python Gunicorn).
- Неверные параметры
proxy_passили слишком низкие таймауты в конфигурации Nginx/Apache. - Временный сбой DNS-резолвера или блокировка трафика корпоративным фаерволом.
- Превышение лимитов оперативной памяти на сервере, из-за чего процесс принудительно завершается (OOM-Killer).
- Ошибки в коде приложения, вызывающие бесконечные циклы или крах воркера при обработке тяжёлого запроса.
Способы решения
Способ 1: Быстрая проверка на стороне клиента
Если вы посетитель ресурса, начните с локальных действий. Они помогут исключить кэшированные битые данные.
- Выполните «жёсткое» обновление страницы: нажмите
Ctrl + F5(Windows/Linux) илиCmd + Shift + R(macOS). Это заставит браузер проигнорировать сохранённый кэш. - Откройте сайт в режиме инкогнито. Если ошибка исчезла, виновником является одно из установленных расширений. Отключайте их по одному в меню браузера, чтобы найти конфликтное.
- Проверьте доступ через мобильный интернет или другое устройство. Если проблема воспроизводится везде, сбой находится на стороне инфраструктуры сайта, и вам остаётся только подождать.
Способ 2: Диагностика сетевого соединения
Иногда ошибку 502 генерируют локальные прокси, VPN или устаревшие DNS-записи.
- Временно отключите VPN, прокси-расширения и корпоративные туннели.
- Сбросьте сетевой стек и очистите кэш DNS. Откройте терминал или командную строку от имени администратора и выполните:
# Для Windows
ipconfig /flushdns
netsh winsock reset
# Для Linux
sudo resolvectl flush-caches
# Для macOS
sudo killall -HUP mDNSResponder
- Перезагрузите маршрутизатор. Сбой в NAT-таблице домашнего роутера может разрывать долгосрочные соединения с веб-серверами, имитируя ошибку шлюза.
Способ 3: Устранение неполадок на веб-сервере
Если вы администратор ресурса, ошибка указывает на разрыв связи между фронтендом и бэкендом.
- Проверьте статус служб. Убедитесь, что процесс веб-приложения запущен и не находится в состоянии
failed:
systemctl status nginx
systemctl status php8.2-fpm
- Проанализируйте логи. В Nginx ошибка 502 детализируется в файле
/var/log/nginx/error.log. Ищите строкиconnect() failedилиupstream timed out— они укажут точный IP и порт упавшего воркера. - Увеличьте таймауты, если бэкенд обрабатывает тяжёлые запросы дольше стандартных 30 секунд. В блоке
httpилиserverконфигуратора добавьте:
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
- Перезапустите сервисы для применения изменений:
sudo systemctl reload nginx. Если процесс бэкенда постоянно падает, проверьте логи приложения (journalctl -u php-fpm -f) на предмет утечек памяти или фатальных ошибок синтаксиса.
Профилактика
Чтобы минимизировать появление 502 Bad Gateway, настройте автоматический мониторинг состояния upstream-серверов через встроенные модули health_check. Регулярно обновляйте пакеты веб-сервера и интерпретаторов, чтобы избежать известных багов стабильности. Внедрите систему автоматического перезапуска упавших воркеров (например, supervisord или параметр pm.max_requests в PHP-FPM). Для публичных проектов используйте CDN с функцией graceful degradation, которая отдаст посетителю кэшированную версию страницы при временной недоступности основного хоста.