<div><img src="https://top-fwz1.mail.ru/counter?id=3548135;js=na" style="position:absolute;left:-9999px;" alt="Top.Mail.Ru" /></div>
Истории успеха наших клиентов — лучшие проекты
Вход / Регистрация
На главную
25eb9e0a-a5a8-472a-ace7-940b8bd2adf0
Облачные сервисы

Путь проверки состояния

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

По умолчанию при деплое система обращается только к корневому URL (/). То есть запрашивается главная страница, и если она возвращает не 2xx, деплой считается неуспешным.

Это не всегда удобно:

  • У API может не быть корневого эндпойнта — он может вернуть 404;
  • Статический сайт может использовать маршрутизацию на клиенте — и корневой путь может не сработать без окружения браузера;
  • Приложение может возвращать ошибку из-за временного состояния или, например, ожидания стороннего ресурса (базы данных).

После деплоя приложение не проверяется — даже если оно перестанет отвечать, это никак не повлияет на его статус.

Чтобы избежать таких ситуаций, можно настроить путь проверки состояния. Для этого в приложении должен быть реализован эндпойнт, который не зависит от внешних факторов (например, готовности базы данных или сторонних сервисов) и отражает состояние приложения.

Этот эндпойнт вы сможете указать при настройке — например, /health, /status или /ping.

Как работает

Во всех случаях запрос к пути проверки состояния выполняется с localhost

Главное требование — возвращать код 2xx. Содержимое ответа неважно, главное — корректный код ответа.

При редеплое

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

  • Если все три запроса возвращают код 2xx — деплой считается успешным, и новая версия приложения становится активной.
  • Если три проверки подряд завершаются ошибкой (любой ответ отличный от 2xx) — деплой считается неуспешным, и продолжает работать предыдущая версия.
  • Проверки продолжаются до тех пор, пока не будет:
    • три успешных ответа подряд,
    • три неуспешных ответа подряд,
    • или не пройдет 180 секунд — если за это время ни одно из условий не выполнено, деплой считается неуспешным.

В логах деплоя появится сообщение, если проверка не пройдена.

После запуска

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

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

Scr 20251125 Olid

Настройка

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

При создании приложения

В разделе «Настройка приложения» укажите путь в поле «Путь проверки состояния».

Например, если в приложении реализован эндпойнт /health, который доступен по адресу https://домен/health, укажите:

/health

Scr 20251125 Qqdp

Для уже созданного приложения

  1. Откройте нужное приложение в панели управления;

  2. Перейдите на вкладку «Настройки»;

  3. В блоке «Настройки деплоя» нажмите кнопку «Редактировать»;

  4. Введите путь проверки состояния;

  5. Нажмите «Сохранить данные».

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

Scr 20251125 Qqlz

Docker и Docker Compose

Если вы используете деплой через Dockerfile, в панели управления будет доступна настройка пути проверки состояния. Но если в самом Dockerfile прописан HEALTHCHECK, он имеет приоритет — настройка из панели в этом случае игнорируется.

Настройка через Dockerfile подробно описана в официальной документации.

Пример:

HEALTHCHECK --interval=30s --timeout=10s --retries=3 \
CMD curl -f http://localhost/health || exit 1

Для деплоев через Docker Compose настройка пути проверки состояния в панели управления не поддерживается.

Если при этом используется Dockerfile, вы можете настроить HEALTHCHECK внутри него — правило будет работать, как описано выше.

Была ли статья полезна?
Ваша оценка очень важна
Пока нет комментариев