Сценарий
Соединение висит и обрывается по таймауту
Служба слушает на всех адресах и с самой машины отвечает мгновенно. Запрос по адресу машины висит до таймаута вместо отказа.
Тот же orders-api, что и в сценарии «Сервис работает, но недоступен», только жалоба другая. Мониторинг снова показывает его красным, но в этот раз без слов «отказано в соединении»: запрос ждёт и не дожидается. Дежурный проверил привязку сокета, вспомнив прошлый раз, и она в порядке. Дальше идей нет.
Симптом
С самой машины всё отвечает. Сокет слушает на всех адресах. И всё равно запрос по адресу машины висит до таймаута.
$ sudo service orders-api status
orders-api is running
$ curl -s http://localhost:8080/
orders-api ok
$ sudo ss -ltnp 'sport = :8080'
State Recv-Q Send-Q Local Address:Port Peer Address:PortProcess
LISTEN 0 5 0.0.0.0:8080 0.0.0.0:* users:(("orders-api",pid=64,fd=3))
$ curl -sS --max-time 3 http://$(hostname -I | awk '{print $1}'):8080/
curl: (28) Connection timed out after 3002 millisecondsСравни последнюю строку с той, что была в прошлом сценарии. Там curl возвращал код 7 и слова Couldn't connect to server, и возвращал их сразу. Здесь код 28 и три секунды тишины. Это другой диагноз, и разбирать его надо иначе.
Что надо получить
Три условия. По внешнему адресу машины API отвечает строкой orders-api ok, отвечает не дольше пяти секунд, и в наборе правил файрвола не осталось правила с действием drop для порта 8080. Базовые правила файрвола на месте: снять защиту хоста целиком и нич
Дальше бесплатно, нужен только аккаунт
Урок открывается после входа. Создай бесплатный аккаунт, чтобы дочитать его и запустить лабораторию.
Уже есть аккаунт? Войти