Ошибки HTTP 500, 502 и 503
Ошибки 500, 502 и 503 для пользователя выглядят одинаково неприятно: сайт не работает. Но для диагностики это разные сигналы. 500 чаще указывает на приложение, 502 — на связку proxy и upstream, 503 — на перегрузку, maintenance mode или временную недоступность сервиса.
Диагностическое дерево HTTP 5xx
Выберите симптом, чтобы увидеть вероятную зону проверки.
Начните с логов backend, последних деплоев, переменных окружения и ошибок базы данных.
Разбор ошибок HTTP 500, 502 и 503: причины в приложении, nginx, gateway, базе данных, перегрузке сервера и внешних API.
Что означает HTTP 500
HTTP 500 Internal Server Error означает, что сервер получил запрос, но приложение не смогло его корректно обработать. Это общий статус для внутренних ошибок: исключение в коде, неправильная конфигурация, ошибка подключения к базе, недоступный внешний API, проблема с правами на файлы или несовместимость после деплоя.
Начинать диагностику 500 нужно с логов приложения. Важно смотреть не только сам stack trace, но и контекст: какой URL вызвал ошибку, какой пользовательский сценарий был затронут, был ли перед этим деплой, миграция базы, изменение переменных окружения или обновление зависимостей.
Что означает HTTP 502
HTTP 502 Bad Gateway обычно появляется на уровне прокси, балансировщика или gateway. Например, nginx принял запрос от пользователя, попытался передать его приложению, но upstream не ответил корректно. Это может быть падение контейнера, неправильный порт, timeout, ошибка DNS внутри docker-сети или несовместимый ответ от приложения.
При 502 полезно проверить цепочку: пользователь → CDN или Caddy/nginx → backend → база и внешние зависимости. Если приложение не слушает порт, перезапускается, зависло на старте или отдаёт некорректный ответ, прокси часто покажет именно 502.
Мониторинг покажет, когда состояние изменится
Добавьте сайт или сервер один раз — perfMon будет проверять его автоматически, сохранит историю и сообщит о сбое и восстановлении.
Что означает HTTP 503
HTTP 503 Service Unavailable говорит, что сервис временно недоступен. Это может быть осознанный maintenance mode, перегрузка, исчерпанный пул соединений, лимит хостинга, очередь запросов, недоступность базы данных или остановленный backend. В отличие от 500, 503 часто связан не с ошибкой конкретного запроса, а с состоянием сервиса в целом.
Если 503 появляется во время пиков нагрузки, проверьте CPU, RAM, диск, количество соединений, очереди задач и лимиты web-сервера. Если 503 появился после релиза, проверьте healthcheck, readiness, миграции и запуск приложения.
Почему важно смотреть частоту и длительность 5xx
Одна ошибка 500 в логах может быть пользовательским edge case. Серия 5xx за несколько минут — уже инцидент. Для сайта важны не только коды, но и количество затронутых запросов, длительность, время восстановления и повторяемость по дням.
Мониторинг HTTP-статусов помогает увидеть проблему снаружи, а не только в логах. Это важно, потому что backend может логировать ошибку, но команда узнает о ней поздно. Внешняя проверка фиксирует то, что видит пользователь: статус, доступность и задержку ответа.
Как построить диагностику 500, 502 и 503
Удобный порядок диагностики такой: сначала проверить внешний HTTP-статус и TTFB, затем открыть логи proxy, потом логи приложения, после этого посмотреть метрики сервера и базы данных. Если ошибка появилась после релиза, отдельно проверьте миграции, конфигурацию и переменные окружения.
Не стоит ограничиваться перезапуском сервиса. Перезапуск может временно убрать симптом, но не объяснит причину. Если ошибка повторяется, нужна история: когда началась, сколько длилась, какой статус был первым, какие метрики изменились рядом с инцидентом.
Как снизить риск повторения 5xx
После устранения ошибки стоит превратить разбор в профилактику. Для 500 полезны тесты критичных сценариев, проверка миграций и валидация конфигурации перед деплоем. Для 502 важны healthcheck приложения, корректные readiness-проверки и понятные таймауты между proxy и upstream. Для 503 нужны лимиты, очереди, контроль ресурсов и graceful degradation.
Мониторинг помогает увидеть, сработала ли профилактика. Если после исправления 5xx исчезли, но TTFB остался высоким, проблема решена не полностью. Если ошибка вернулась в тот же час или при той же нагрузке, нужно смотреть глубже: базу, фоновые задачи, внешние API и ресурсные ограничения.
Для SEO и рекламы важно не только быстро восстановить сайт, но и не допустить повторения ошибок на индексируемых страницах. Поисковый робот может попасть на период нестабильности, получить 5xx и снизить доверие к URL. Поэтому критичные страницы, карточки товаров, формы заявок и API, которые влияют на витрину, стоит вынести в отдельные проверки.
Автоматизируйте проверку, описанную в статье
Разовая диагностика помогает сейчас. Регулярный мониторинг нужен, чтобы не пропустить повторение проблемы.
Настроить бесплатноПрименить на практике
Частые вопросы
Короткие ответы на вопросы, которые обычно возникают при диагностике.
Какая ошибка опаснее: 500, 502 или 503?
Для пользователя все 5xx критичны. Для команды различается диагностика: 500 чаще ведёт в приложение, 502 — в proxy/upstream, 503 — в перегрузку или временную недоступность сервиса.
Почему 502 появляется после деплоя?
Часто приложение не успело стартовать, слушает другой порт, упало на миграции или proxy отправляет запросы в старый upstream.
Может ли высокий TTFB быть предвестником 5xx?
Да. Если backend долго отвечает из-за базы, внешнего API или перегрузки, через некоторое время это может перейти в timeout, 502 или 503.
Что мониторить для 5xx?
Минимум: HTTP-статус ключевых URL, TTFB, историю инцидентов, CPU, RAM, диск, heartbeat сервера и логи приложения.
Не ждите следующего сообщения «сайт не работает»
Добавьте первый сайт или сервер: perfMon будет проверять состояние автоматически, сохранит историю и уведомит ответственных.