Перейти к содержимому

Ошибка 502 Bad Gateway: что означает и как найти причину

Ошибка 502 Bad Gateway обычно выглядит пугающе, но её смысл довольно конкретный: сервер, который принял ваш запрос, сам обратился к другому серверу и получил от него неправильный ответ. Чаще всего пользователь видит nginx, CDN или reverse…

Ошибка 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.

По теме: Ошибка 504 Gateway Timeout: почему возникает.

Диагностика NexIP

Продолжите реальной проверкой

Откройте полный раздел диагностики и проверьте сайт, домен или сетевые параметры.

Открыть диагностику

Читайте дальше

Материалы по теме

HTTP и сайты

HTTP-коды ответа: что означают 200, 301, 404, 500 и другие

Когда браузер открывает страницу, сервер отвечает не только HTML-кодом. Вместе с ответом он отправляет числовой HTTP-статус: 200, 301, 404, 500 и так далее. Эти три цифры часто позволяют понять проблему быстрее, чем длинное сообщение…

Читать
HTTP и сайты

Как открывается сайт: DNS → TCP → TLS → HTTP

Когда человек вводит адрес сайта и нажимает Enter, кажется, будто браузер просто «подключился к сайту». На самом деле за доли секунды происходит целая цепочка: DNS, соединение с сервером, TLS и только потом HTTP. Если понимать эту…

Читать
Вернуться в базу знаний