Всем привет, не могу понять некоторые аспекты директивы proxy_connect_timeout из ngx_stream_proxy_module и ngx_http_proxy_module, это по сути одна директива которая всегда работает по одному принципу? почему она входит в состав двух различных модулей?
Опишу сложившуюся ситуацию: есть 2 сервера (соответственно 2 адреса), на каждом крутится несколько бэкендов, у каждого бэкенда свой порт который он слушает (около пяти портов на адресе). Организована балансировка без весов с помощью least_conn подобным образом: upstream backend_service { least_conn; server backend-server1.vds.com:7000 max_fails=1 fail_timeout=5; server backend-server1.vds.com:7001 max_fails=1 fail_timeout=5; server backend-server2.vds.com:7000 max_fails=1 fail_timeout=5; server backend-server2.vds.com:7001 max_fails=1 fail_timeout=5; Бэкенды крутятся как сервисы systemd и в силу различных причин такое иногда бывает что один из сервисов может упасть и не подняться, или может потребуется его остановить. Дело в том, что в такой ситуации балансировщик кидает пользователя на апстрим, который в момент запроса лежит, при этом сам сервер на котором крутится бэкенд работает и порт для бэкенда открыт, соответственно proxy_connect_timeout почему-то не срабатывает, видимо его волнует лишь доступность сервера и открыт ли порт, а что там дальше -нет. Соответственно при запросе пользователь ждет 60с, которые выставлены по умолчанию в proxy_read_timeout, апстрим маркируется как упавший, отрабатывает fail_timeout=5 и все по-новой, а наша цель перекинуть пользователя на рабочий бэкенд как только понятно что тот к которому он пытается подключиться лежит. Возникает вопрос - это нормальное поведение? Есть-ли способы разрешить мою ситуацию без сложных костылей? И да, выставить значение proxy_read_timeout поменьше я не могу - нужно учитывать низкое качество соединения у пользователя, и низкое значение этой директивы может его просто зациклить в перекидывании туда-сюда (или нет?). Спасибо. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,275892,275892#msg-275892 _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru