Ошибка 503

Ошибка 503: почему сервис временно недоступен

Практическая диагностика перегрузки, режима обслуживания, отсутствия готовых экземпляров и отказа критичных зависимостей.

Краткий ответ

Код 503 означает, что сервер сейчас не готов обработать запрос, хотя сам адрес и промежуточная инфраструктура доступны. Это обычно временное состояние: обслуживание, перегрузка, запуск приложения, отсутствие готовых экземпляров или отказ обязательной зависимости.

В отличие от 500, ответ 503 нередко формируется сознательно: система понимает, что не может безопасно обслужить запрос, и сообщает о временной недоступности. В отличие от 502, шлюз может нормально связаться с компонентом, но тот не готов работать.

Исправление зависит от причины. Нельзя просто скрыть 503 собственной страницей ошибки: нужно восстановить готовность сервиса, уменьшить нагрузку, вернуть зависимость или завершить обслуживание.

Как проявляется проблема
Симптомы помогают отделить ошибку приложения от сбоя прокси, сети или внешней зависимости.
  • Сайт или API возвращает 503 во время релиза или обслуживания.
  • Балансировщик не видит ни одного готового экземпляра.
  • Ошибка появляется на пиках нагрузки и исчезает после её снижения.
  • Приложение запущено, но проверка готовности не проходит.
  • В ответе иногда есть заголовок Retry-After с рекомендуемым временем повтора.
  • Часть маршрутов работает, а сервисы, зависящие от базы или очереди, возвращают 503.
Основные причины ошибки 503
503 чаще говорит не о случайном исключении, а о состоянии готовности системы.

Плановое обслуживание

Сервис временно закрывает операции во время миграции, обновления или технических работ.

Что обычно видно
  • Ошибка началась в запланированное окно.
  • Показывается страница обслуживания.
  • После завершения работ доступность восстанавливается.

Перегрузка

Система достигла предела по процессору, памяти, соединениям, очереди или числу одновременных запросов.

Что обычно видно
  • Перед 503 растёт время ответа.
  • Ошибка совпадает с пиком трафика.
  • Масштабирование или снижение нагрузки помогает.

Нет готовых экземпляров

Балансировщик исключил все экземпляры, потому что проверки готовности не проходят.

Что обычно видно
  • Процессы запущены, но трафик к ним не направляется.
  • После релиза новая версия долго не становится готовой.
  • В оркестраторе нет готовых экземпляров.

Критичная зависимость недоступна

Приложение сознательно сообщает о неготовности без базы данных, очереди или другого обязательного сервиса.

Что обычно видно
  • 503 затрагивает функции, использующие зависимость.
  • Проверка готовности содержит ошибку компонента.
  • После восстановления зависимости сервис возвращается.

Ограничение запросов на уровне инфраструктуры

Прокси или платформа может отвечать 503 при переполнении очереди либо отсутствии доступной мощности.

Что обычно видно
  • В приложении нет соответствующих запросов.
  • Ошибка видна в логах балансировщика.
  • Затронуты сразу несколько приложений на одном узле.

Неудачное развёртывание

Старые экземпляры уже остановлены, а новые ещё не готовы или настроены неверно.

Что обычно видно
  • Ошибка началась во время релиза.
  • Нет перекрытия старой и новой версии.
  • Откат восстанавливает доступность.
Как диагностировать 503 по шагам
Сначала определите, кто сформировал 503 и почему система считает себя неготовой.
Шаг 1

Проверьте ответ и время возникновения

Сохраните заголовки, тело ответа и точное время. Это поможет отличить страницу обслуживания от ответа балансировщика.

  • Есть ли Retry-After.
  • Какой сервер указан в заголовках.
  • Совпадает ли ошибка с релизом или работами.
curl -i -sS https://example.ru/critical-url
Шаг 2

Проверьте готовность экземпляров

Запущенный процесс ещё не обязательно готов принимать пользовательский трафик.

  • Сколько экземпляров готовы.
  • Почему проверка готовности не проходит.
  • Не слишком ли строгая или медленная сама проверка.
Шаг 3

Проверьте нагрузку и очереди

Смотрите не только средние значения, но и пики и исчерпание лимитов.

  • Процессор и память.
  • Пул соединений и очередь запросов.
  • Задержка и число ошибок перед 503.
Шаг 4

Проверьте обязательные зависимости

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

  • Доступна ли база данных.
  • Работает ли сеть и разрешение имён.
  • Не истёк ли секрет или сертификат.
Шаг 5

Проверьте схему развёртывания

503 во время каждого релиза означает проблему процесса доставки, а не нормальное поведение.

  • Остаются ли готовые старые экземпляры.
  • Дожидается ли система готовности новой версии.
  • Корректно ли настроено завершение старых соединений.
503 и соседние серверные ошибки
Правильное различие сокращает область поиска.
КодСостояниеТипичный источникПервое действие
500Обработчик упал внутриПриложениеИскать исключение
502Шлюз не получил корректный ответПроксиПроверить upstream
503Сервис временно не готовПриложение или балансировщикПроверить готовность и нагрузку
504Шлюз не дождался ответаПроксиПроверить задержку и таймаут
Что делать в зависимости от роли
Действия посетителя, владельца сайта и разработчика различаются. Не стоит начинать с изменений наугад.

Посетителю сайта

503 обычно временный, но повторять операцию нужно осторожно.

  • Подождите и попробуйте позже.
  • Не отправляйте платёж многократно без проверки результата.
  • Сообщите владельцу время и адрес.

Владельцу сервиса

Нужно понять масштаб и бизнес-влияние.

  • Проверьте вход, оплату и API отдельно.
  • Уточните наличие релиза или работ.
  • Сообщите команде, если ошибка продолжается.

Инженеру

Ищите причину неготовности.

  • Проверьте готовые экземпляры.
  • Посмотрите ресурсы и зависимости.
  • Исправьте процесс развёртывания или предел мощности.
Как контролировать ошибку 503
Регулярные проверки позволяют отделить краткий переходный ответ от продолжительного пользовательского инцидента.

Контроль критичных маршрутов

Проверяйте не только главную, но и вход, оплату, API и другие точки, где 503 влияет на пользователя.

История продолжительности

Важно знать не только факт ошибки, но и сколько проверок подряд она повторялась.

Сигнал о восстановлении

После успешного ответа UpWatch закрывает инцидент и фиксирует момент возврата доступности.

Сравнение с релизами

Если 503 появляется на каждом развёртывании, историю можно сопоставить со временем выпуска версии.

Ограничения внешней проверки

  • Внешний монитор не видит внутреннее состояние оркестратора.
  • Он не отличит перегрузку от обслуживания без журналов и метрик.
  • Редкие короткие сбои между проверками могут не попасть в историю.
  • Проверка одного региона не описывает доступность из всех сетей.
Частые вопросы

Ошибка 503 всегда временная?

По смыслу код описывает временную неготовность, но без устранения причины она может продолжаться долго.

Нужно ли возвращать Retry-After?

Это полезно, когда сервер может разумно указать время повторной попытки. Заголовок не устраняет причину, но помогает клиентам не создавать лишнюю нагрузку.

Почему 503 появляется во время каждого релиза?

Вероятно, старые экземпляры останавливаются раньше, чем новые становятся готовыми, либо проверка готовности настроена неверно.

Чем 503 отличается от ограничения частоты запросов 429?

429 относится к конкретному клиенту или лимиту запросов. 503 обычно означает общую временную неготовность сервиса.

Может ли CDN вернуть 503?

Да. Ответ может сформировать любой промежуточный слой, если у него нет доступного источника или мощности. Нужно определить источник по заголовкам и журналам.

Считает ли UpWatch 503 ошибкой?

Да. HTTP-статусы 400 и выше в текущей реализации считаются неуспешными проверками.

Связанные материалы
Перейдите к отдельной инструкции, если код ответа или тип отказа уже известен.
Ошибка 502

Шлюз не получил корректный ответ от приложения.

Ошибка HTTP 500

Внутренняя ошибка при обработке запроса.

Мониторинг после релиза

Контроль критичных URL после выпуска версии.

Мониторинг сайта

История доступности и уведомления об инцидентах.

Контролируйте временную недоступность сервиса
UpWatch зафиксирует ответы 503 на критичных URL и покажет продолжительность инцидента и восстановление.