пишут, что достаточно
upstream backend {
server backend1.example.com;
server backend2.example.com max_fails=3 fail_timeout=30s;
}
но что-то не очень работает в итоге, получает 499 ошибку и продолжает работать
а что не работает-то?
ну же говорю, не слушается порт приложения, в итоге клиент висит, и по 499 сам закрывает соединение, а это видимо не ошибка которая должна закрыть апстрим
Так если приложуха не слушает порт - видимо дело не в nginx 🙂 Надо чтобы слушала 🙂
Если на апстрим таймауты поставить - заработает
Это о чем речь? Вроде таймаут и макс фейл есть
но от ошибок не избавит
depends on
У бека есть три варианта поведения: 1. ответить. 2. не ответить, с icmp reject 3. не ответить молча. В 1-2 случае nginx при проксировании в апстрим тут же получает статус бэка При случае 3 - висит до proxy_connect_timeout, и только потом делает вывод о живости апстрима. Чтобы он куда-то дальше пошел - он должен понять статус апстрима раньше, чем клиент уйдет с 499-й.
Обсуждают сегодня