Hello!
On Sun, Jul 08, 2012 at 09:47:09AM +0400, Dmitry Y. Labutin wrote:
[...]
upstream backend {
server www4.company.ru backup;
server www1.company.ru fail_timeout=600s;
keepalive 64;
}
[...]
Именно сейчас www1.company.ru недоступен - лег канал.
Я надеялся, что попытки nginx отправить запрос пользователей через
www1.company.ru будут идти раз в 10 минут, но на деле, там очень
много вот такого в error.log:
2012/07/08 09:42:02 [error] 10904#0: *5715 connect() failed (110:
Connection timed out) while connecting to upstream, client:
212.33.247.144, ...
[...]
2012/07/08 09:42:10 [error] 10904#0: *5737 connect() failed (110:
Connection timed out) while connecting to upstream, client:
85.26.234.5, ...
Вопрос - почему nginx делает так много попыток соединения через
www1.company.ru ? Ведь он же получил Connection timed out и должен
был в соответствии с fail_timeout=600s 10 минут туда не соваться!!!
Или я что-то не так настроил?
Канал лёг когда? По получению первой ошибки nginx перестаёт
отправлять запросы на недоступный бекенд, но уже отправленные -
продолжают ждать таймаутов и соответственно отмечаться в error
log'е когда дождутся. В вашем случае proxy_connect_timeout
используется по умолчанию, 60 секунд, так что приведённая выдержка
из лога не позволяет утверждать, что что-то не так.
После того, как уже отправленные запросы кончаться - в современных
версиях будет 1 запрос на рабочий процесс в fail_timeout секунд.
Maxim Dounin
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru