Посредник недоволен ответом
Между вашим браузером и приложением сайта нередко стоят несколько промежуточных серверов: балансировщик, шлюз перед приложением, CDN. Ответ 502 выдаёт именно такой посредник: он обратился к следующему серверу в цепочке, но получил в ответ ошибку, обрыв или бессмыслицу.
Это значит, что вы, скорее всего, добрались до части инфраструктуры сайта, а сбой лежит дальше. Ваш компьютер и интернет-канал тут почти ни при чём.
Иногда отвечающим за ошибку оказывается совсем не сайт, а сервис перед ним: облачный защитник, балансировщик у хостинга или кэширующий слой. Именно поэтому на странице ошибки нередко можно увидеть название посредника, и это подсказка, куда обращаться.
Типичные источники
Самый частый вариант: приложение за промежуточный сервер упало, перезапускается или не успело запуститься после деплоя, поэтому отвечать некому. Другой вариант — процесс приложения завис или превысил лимит памяти и был принудительно завершён.
Ещё причины: неправильный адрес или порт в настройках промежуточного сервера, блокирующее правило между серверами, слишком большой заголовок ответа, разные версии протоколов между звеньями. Если сайт использует CDN, причиной может стать недоступность исходного сервера.
Особенно часто такое случается в первые минуты после публикации новой версии: старый процесс уже остановлен, а новый ещё не готов принимать запросы. Хорошие процедуры выкладки используют проверку готовности, чтобы посредник не отправлял запросы на неготовый сервер.
Что проверить посетителю
Повторите загрузку через полминуты: короткие сбои при перезапуске приложений — обычное дело. Откройте сайт на другом устройстве, в другой сети. Если 502 везде, у вас нет возможности повлиять.
Можно очистить кэш браузера и перезапустить роутер, но ожидать многого не стоит. Если вы пользуетесь корпоративным промежуточный сервер или расширением-посредником, отключите его и повторите. В редких случаях 502 отдаёт именно ваш локальный промежуточный сервер.
Дополнительное наблюдение: если 502 появляется у одних посетителей и не появляется у других, вероятно, один из нескольких серверов за балансировщиком неисправен. Тогда повторная загрузка страницы иногда отправит вас на исправный узел, и всё откроется.
Диагностика владельца
Посмотрите журнал промежуточного сервера: он подскажет, к какому серверу и порту шло обращение и чем закончилось. Проверьте, запущено ли приложение и слушает ли оно нужный адрес. Убедитесь, что ресурсы сервера не исчерпаны: память, процессор, число процессов, свободное место.
При использовании PHP-FPM или похожих обработчиков проверьте пул процессов и лимиты времени. Если ошибка возникает при загрузке больших ответов, изучите настройки буферов и заголовков. После обновления сравните версию и конфигурацию с предыдущей рабочей.
CDN и облачные защиты
Когда сайт работает за сервисом ускорения, 502 нередко означает, что сервис не смог достучаться до исходного сервера: тот выключен, блокирует его адреса или отвечает слишком медленно. Проверьте, что исходный сервер доступен напрямую, разрешены адреса сервиса в фильтре, а сертификаты между звеньями корректны.
Отдельно проверьте сертификаты и протоколы между звеньями цепочки. Если посредник обращается к серверу по защищённому соединению, а сертификат просрочен или не совпадает по имени, он получает ошибку и возвращает 502, хотя приложение само по себе исправно.
Как не путать с соседними кодами
502 говорит о неверном ответе от вышестоящего сервера, 504 о том, что ответа не дождались, 503 о неготовности сервиса принять запрос, 500 о внутренней ошибке самого приложения. Если после перезапуска приложения 502 сменился на 500, значит, приложение запущено, но падает при обработке запросов, и искать нужно уже в его журнале.
Для быстрой проверки обратитесь к серверу приложения напрямую, минуя посредника, из внутренней сети. Если ответ нормальный, ищите проблему в настройках промежуточного сервера, если нет, значит, неисправно само приложение или его окружение.