Re: А fail_timeout в ngx_http_upstream_module работает?

Dmitry Y. Labutin dmitry на labutin.net
Вс Июл 8 09:40:25 UTC 2012


Да, логи были после сразу после рестарта nginx. Но вот уже прошло 
несколько часов и обращения стали конечно реже, но все равно значительно 
чаще чем раз в 10 минут:
2012/07/08 13:29:30 [error] 10901#0: *163989 connect() failed (110: 
Connection timed out) while connecting to upstream
2012/07/08 13:29:30 [error] 10901#0: *163994 connect() failed (110: 
Connection timed out) while connecting to upstream
2012/07/08 13:29:33 [error] 10901#0: *164029 connect() failed (110: 
Connection timed out) while connecting to upstream
2012/07/08 13:29:33 [error] 10901#0: *164031 connect() failed (110: 
Connection timed out) while connecting to upstream
2012/07/08 13:29:35 [error] 10901#0: *164033 connect() failed (110: 
Connection timed out) while connecting to upstream
2012/07/08 13:29:38 [error] 10901#0: *164044 connect() failed (110: 
Connection timed out) while connecting to upstream
2012/07/08 13:29:39 [error] 10901#0: *164062 connect() failed (110: 
Connection timed out) while connecting to upstream
2012/07/08 13:31:21 [error] 10899#0: *164566 connect() failed (110: 
Connection timed out) while connecting to upstream
2012/07/08 13:35:21 [error] 10897#0: *143777 connect() failed (110: 
Connection timed out) while connecting to upstream
2012/07/08 13:36:51 [error] 10902#0: *168456 connect() failed (110: 
Connection timed out) while connecting to upstream

Дмитрий

08.07.2012 13:16, Maxim Dounin пишет:
> 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 на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>




Подробная информация о списке рассылки nginx-ru