Ошибка 502 Bad Gateway обычно выглядит пугающе, но её смысл довольно конкретный: сервер, который принял ваш запрос, сам обратился к другому серверу и получил от него неправильный ответ.
Чаще всего пользователь видит nginx, CDN или reverse proxy, а проблема находится глубже.
Как выглядит схема
Пользователь
↓
nginx
↓
PHP-FPM / приложение
↓
ответ
Если nginx не может нормально получить ответ от приложения, возникает 502.
Почему называется Bad Gateway
Промежуточный сервер выполняет роль gateway или proxy между клиентом и backend.
502 не означает проблему с DNS
Если вы уже получили HTTP 502, DNS, как правило, хотя бы привёл вас к какому-то веб-серверу.
Исключение — вы могли попасть вообще не на тот сервер из-за неправильного DNS, но сам код 502 генерируется уже на HTTP-уровне.
Частая причина: PHP-FPM не работает
Для PHP-сайта nginx может быть настроен на:
127.0.0.1:9000
или Unix socket.
Если PHP-FPM остановлен или socket не существует, frontend не получает корректный ответ.
Приложение упало
Node.js, Python, Java или другой backend мог завершиться с ошибкой.
Неправильный порт
Nginx ждёт приложение на 8080, а оно реально слушает 8081.
Проблема Unix socket
Socket может существовать, но права доступа не позволяют nginx к нему подключиться.
Контейнер перезапускается
В Docker-среде 502 нередко появляется, когда backend-контейнер находится в restart loop.
Backend отвечает некорректно
Соединение установилось, но ответ нарушен или неожиданно оборвался.
CDN тоже может показать 502
В этом случае:
Пользователь
↓
CDN
↓
origin
CDN не смог нормально получить страницу с origin-сервера.
Как понять, кто именно отдаёт 502
Посмотрите HTTP-заголовки:
curl -I https://example.com/
Заголовок Server иногда помогает, хотя его наличие и значение не гарантированы.
Сначала проверьте frontend
systemctl status nginx
Если nginx отдаёт 502, сам nginx уже работает. Теперь интереснее состояние backend.
Для PHP
systemctl status php8.5-fpm
Название службы зависит от установленной версии и системы.
Проверить порты
ss -lntp
Проверить журнал nginx
tail -n 100 /var/log/nginx/error.log
Очень часто там буквально написана причина:
connection refused
no such file or directory
upstream prematurely closed connection
Что делать обычному посетителю
Почти ничего. 502 обычно исправляет владелец сайта.
Можно попробовать обновить страницу через несколько минут, но очистка браузера редко лечит реальную серверную 502.
502 иногда бывает временной
Например, приложение перезапускается во время deploy. Несколько секунд frontend уже работает, а backend ещё не готов.
Как избежать 502 при обновлении
На серьёзной инфраструктуре используют health checks, graceful restart и поэтапное переключение backend.
Как NexIP помогает
Внешняя проверка покажет, что проблема воспроизводится не только у вас и сервер действительно возвращает 502.
FAQ
502 означает, что сервер выключен?
Не обязательно. Frontend как раз может быть включён, а проблема находится между ним и backend.
Поможет смена DNS?
Только если DNS действительно ведёт на неправильную инфраструктуру. В обычном случае — нет.
502 и 504 — одно и то же?
Нет. При 504 ключевая проблема обычно во времени ожидания ответа от upstream.
Диагностика NexIP
Продолжите реальной проверкой
Откройте полный раздел диагностики и проверьте сайт, домен или сетевые параметры.
Читайте дальше
Материалы по теме
Что показывают HTTP-заголовки
Полное руководство по HTTP-заголовкам: request и response headers, кеш, redirects, cookies, CORS, security headers, CDN и диагностика через curl и NexIP.
ЧитатьКак проверить доступность сайта
Пошаговая диагностика недоступного сайта: домен, DNS, IP, маршрут, TCP, TLS, HTTP-коды, curl, IPv4/IPv6, CDN и проверка через NexIP.
ЧитатьHTTP-коды ответа: что означают 200, 301, 404, 500 и другие
Когда браузер открывает страницу, сервер отвечает не только HTML-кодом. Вместе с ответом он отправляет числовой HTTP-статус: 200, 301, 404, 500 и так далее. Эти три цифры часто позволяют понять проблему быстрее, чем длинное сообщение…
ЧитатьКак открывается сайт: DNS → TCP → TLS → HTTP
Когда человек вводит адрес сайта и нажимает Enter, кажется, будто браузер просто «подключился к сайту». На самом деле за доли секунды происходит целая цепочка: DNS, соединение с сервером, TLS и только потом HTTP. Если понимать эту…
Читать