Это не ваш сайт? Если чужой сайт не открывается только у вас — попробуйте другой браузер, мобильный интернет и отключите VPN. Дальше на странице — разбор для владельца сайта.
Шаг 1. Определите, кто показывает ошибку
Посмотрите на страницу с ошибкой.
- Белая страница с надписью «502 Bad Gateway» и «nginx» внизу. Ошибку отдаёт веб-сервер вашего хостинга. Приложение за ним (PHP) не ответило.
- Страница с логотипом Cloudflare, Ray ID и значками «Browser / Cloudflare / Host». Ошибку показывает прокси. Рабочий ли сервер за ним, видно по значку «Host».
- Страница хостинга с его оформлением. Откройте раздел состояния на сайте хостинга: массовые сбои пишут там.
Шаг 2. Повторите запрос через минуту
Ошибка 502 бывает разовой: PHP перезапустился, сервер обновлял настройки. Если после двух-трёх обновлений страницы сайт открылся, но ошибка повторяется раз в несколько часов, причина системная, и разовое обновление не поможет.
Не хотите разбираться сами? Пришлём оценку в часах до начала работы, первая задача до 2 часов бесплатно.
Отправить задачуШаг 3. Проверьте, падает всё или одна страница
Если ошибка только на одной странице, ищите причину в её коде: тяжёлый запрос, плагин, шаблон. Если на всех, падает весь PHP-процесс или связь с ним. Ошибка только в админке подсказывает, что обычные страницы отдаются из кеша, а живой PHP не отвечает.
Шаг 4. Прочитайте журнал веб-сервера
На своём сервере или VPS откройте журнал nginx (обычно /var/log/nginx/error.log). Нужные строки содержат слово upstream:
| Запись в журнале | Что значит |
|---|---|
connect() failed (111: Connection refused) while connecting to upstream | PHP-FPM не запущен или упал |
connect() to unix:/run/php/php8.2-fpm.sock failed (2: No such file or directory) | nginx ищет сокет другой версии PHP, чем запущена. Бывает после обновления PHP |
upstream prematurely closed connection | PHP-процесс завершился на середине запроса: нехватка памяти или фатальная ошибка |
upstream timed out | Ответа слишком долго не было. Это скорее 504 |
На виртуальном хостинге доступ к журналу nginx обычно закрыт. Попросите поддержку хостинга прислать строки журнала за время ошибки.
Шаг 5. Проверьте PHP-FPM
- Запущена ли служба:
systemctl status php8.2-fpm(версия в названии своя). - Не упёрлись ли в лимит процессов. В журнале PHP-FPM ищите сообщение
server reached pm.max_children setting. Тогда новые запросы ждут и часть получает 502. Лимитpm.max_childrenувеличивают с учётом памяти сервера: каждый процесс занимает память, и при слишком большом значении сервер уйдёт в своп. - Не убивает ли процессы нехватка памяти. Признак:
Out of memory: Killed processв системном журнале.
Шаг 6. Если сайт за Cloudflare или другим прокси
Временно переключите запись DNS в режим «только DNS» (серое облако) и откройте сайт напрямую. Если напрямую сайт работает, проблема в настройках прокси или в блокировке его адресов на сервере. Если не работает, проблема на сервере. Описание ошибок Cloudflare: документация Cloudflare по ошибкам 5xx.
Когда нужен специалист
- Ошибка появляется регулярно, а в журналах нет понятной причины.
- Нужен доступ к серверу, которого нет.
- После перезапуска PHP ошибка возвращается через несколько часов.
Сколько стоит решение у нас
| Задача | Время | Стоимость |
|---|---|---|
| Диагностика и восстановление | около 2 ч | 7 600 ₽ |
| Восстановление сайта после сбоя | 1–3 ч | 3 800–11 400 ₽ |
| Настройка сервера или VPS | 2–4 ч | от 7 600 ₽ |
Диапазоны ориентировочные, ставка 3 800 ₽ в час. Точную оценку присылаем до начала работ. Все цены.
Опишите проблему в форме. Пришлём оценку в часах до начала работы, первая задача до 2 часов бесплатно для новых клиентов.
Отправить задачуЧастые вопросы
Чем 502 отличается от 500?
При 500 приложение получило запрос и упало. При 502 веб-сервер не смог получить ответ от приложения вообще. Таблица кодов: HTTP-ошибки сайта.
Ошибка 502 влияет на позиции в поиске?
Поисковые системы повторяют запрос позже. Короткий сбой не страшен. Если 502 держится несколько дней, страницы могут выпасть из индекса. Подробнее о работе поисковика с ошибками сервера: справка Google.
Перезапуск сервера помогает?
Помогает временно, если причина в зависшем процессе или нехватке памяти. Без выяснения причины ошибка вернётся.