Ошибки сайтов и серверов

Ошибка 502 Bad Gateway: что значит и как исправить

Автор: Даниил · Обновлено:

Коротко

502 Bad Gateway означает, что промежуточный сервер (nginx, прокси, CDN) получил плохой ответ или вообще не получил ответа от сервера, где работает сайт. Посетителю: обновите страницу и подождите. Владельцу сайта: проверьте, запущен ли PHP-FPM или приложение, и посмотрите error.log.

502 Bad GatewayHTTP nginx, Apache, прокси, CDN
Причина
Сервер-шлюз не получил корректный ответ от основного сервера или приложения
Решение
Посетителю: обновить страницу и подождать. Владельцу: перезапустить PHP-FPM/приложение, проверить логи и таймауты
Обложка: ошибка 502 Bad Gateway на сайте
Оглавление статьи
  1. 01Что происходит
  2. 02Если вы посетитель сайта
  3. 03Если вы владелец сайта
  4. 3.11. Посмотрите логи
  5. 3.22. Проверьте, работает ли приложение
  6. 3.33. Проверьте ресурсы сервера
  7. 3.44. Увеличьте лимиты и таймауты
  8. 3.55. Отключите плагины и проверьте сайт
  9. 3.66. Если сайт за CDN
  10. 04Чем 502 отличается от 503 и 504

502 Bad Gateway — это код ответа HTTP. Он значит, что сервер-посредник (шлюз) не смог получить нормальный ответ от сервера, на котором живёт сайт. Проблема, как правило, не в вашем компьютере, а на стороне сайта.

Что происходит

Между вами и сайтом часто стоит цепочка: CDN (например, Cloudflare), обратный прокси или веб-сервер nginx, а за ним приложение (PHP-FPM, Node.js, Python). Запрос идёт по цепочке. Если последнее звено не ответило, упало, вернуло мусор или ответило слишком долго, посредник отдаёт вам 502.

Если вы посетитель сайта

  1. Обновите страницу (F5 или Ctrl+F5). Нередко сбой разовый.
  2. Подождите 5–10 минут: сервер мог перезапускаться или быть перегружен.
  3. Откройте сайт с другого устройства или сети (например, с мобильного интернета), чтобы исключить проблему на вашей стороне.
  4. Проверьте, не упал ли сайт у всех. Для этого подойдут сервисы вроде downdetector.
  5. Очистите кэш браузера или откройте страницу в режиме инкогнито.
  6. Перезагрузите роутер и смените DNS (например, на 8.8.8.8 или 1.1.1.1), если ошибка только у вас.

Если ничего не помогло, остаётся подождать или написать владельцу сайта.

Если вы владелец сайта

1. Посмотрите логи

В логе ошибок nginx (обычно /var/log/nginx/error.log) причина видна сразу. Типичные записи:

  • connect() failed (111: Connection refused): приложение не запущено или слушает другой адрес.
  • upstream timed out: приложение отвечает слишком долго.
  • upstream prematurely closed connection: приложение упало во время обработки запроса.

2. Проверьте, работает ли приложение

systemctl status php8.2-fpm
systemctl restart php8.2-fpm

Замените имя службы на своё (версия PHP-FPM, gunicorn, pm2 и так далее). Убедитесь, что сокет или порт в конфиге nginx (fastcgi_pass, proxy_pass) совпадает с тем, что слушает приложение.

3. Проверьте ресурсы сервера

Нехватка памяти или процессора часто приводит к падению PHP-FPM. Посмотрите загрузку (top, free -m) и записи об убитых процессах (dmesg | grep -i oom).

4. Увеличьте лимиты и таймауты

Если запросы тяжёлые (импорт, отчёты), поднимите fastcgi_read_timeout/proxy_read_timeout в nginx и max_children в пуле PHP-FPM.

5. Отключите плагины и проверьте сайт

В WordPress отключите недавно установленные плагины и тему: частая причина — конфликт или бесконечный цикл в коде.

6. Если сайт за CDN

Проверьте, отвечает ли ваш сервер напрямую (в обход CDN) и доступен ли он для адресов CDN: firewall мог заблокировать запросы.

Чем 502 отличается от 503 и 504

  • 502: шлюз получил плохой ответ или не получил его.
  • 503: сервис временно недоступен (перегрузка, обслуживание).
  • 504: шлюз не дождался ответа (таймаут).

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

Что значит 502 Bad Gateway простыми словами?

Промежуточный сервер обратился к основному серверу сайта и не получил нормального ответа. Сайт при этом не обязательно «упал»: он мог просто не ответить вовремя.

Ошибка 502 на моей стороне или на стороне сайта?

Чаще всего на стороне сайта или его хостинга. Если сайт открывается с другого устройства или сети, проблема у вас: очистите кэш, смените DNS, перезагрузите роутер.

Как исправить 502 в nginx с PHP-FPM?

Проверьте, запущен ли PHP-FPM, совпадает ли сокет в конфиге nginx, хватает ли памяти, и прочитайте error.log: там указана конкретная причина.

Чем отличаются 502 и 504?

502 — шлюз получил некорректный ответ или соединение отклонено. 504 — шлюз не дождался ответа за отведённое время.