Ответ с ошибкой — тоже ответ. Скрипт заметит ошибку по коду curl, а тот ли это сайт — по тексту ответа.
Для curl без ключей ответ 503 — успешный обмен: соединение было, ответ получен, код 0. С ключом -f (--fail) он считает статус от 400 и выше ошибкой: печатает curl: (22) The requested URL returned error: 503 и выходит с кодом 22. Скриптам и мониторингу нужен именно код.
Раз пришёл статус, сеть и порт в порядке: искать нужно в самом приложении — в его настройке, журнале, зависимостях.
Статус 200 тоже не всё. На адрес мог ответить другой сайт или заглушка. Поэтому проверка смотрит и статус, и текст ответа: у учебного сервиса это строка ports-lab-ok.
Проверка с клиента напечатала такую строку. Где искать причину?
curl: (22) The requested URL returned error: 503
-
Статус
503прислал сервер, значит соединение было и запрос дошёл. Сеть свою часть сделала. -
Фильтр, отбрасывающий пакеты, дал бы тайм-аут без ответа. Здесь ответ пришёл.
-
-fтолько превращает статус от400в код22. Без негоcurlполучит тот же503с кодом0.
503 — статус ответа приложения: соединение есть, запрос дошёл, а сервис не готов его обслужить. Причину ищут в самом приложении.
Главное в шаге
-
Без
-fcurlвыходит с кодом0и при ответе503, с-f— с кодом22. - Статус ответа значит, что сеть и порт в порядке, а ошибку ищут в приложении.
- Проверка сервиса смотрит статус и текст ответа.