Re: А fail_timeout в ngx_http_upstream_module работает?
Dmitry Y. Labutin
dmitry на labutin.net
Вс Июл 8 17:04:43 UTC 2012
Доброго времени суток.
nginx version: nginx/1.2.2
built by gcc 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC)
configure arguments: --prefix=/opt/nginx --without-http_rewrite_module
--without-http_gzip_module
nginx занимается только балансировкой каналов - перекидыванием на
резервный, в случае недоступности основного.
Дмитрий
08.07.2012 19:43, Maxim Dounin пишет:
> Hello!
>
> On Sun, Jul 08, 2012 at 01:40:25PM +0400, Dmitry Y. Labutin wrote:
>
>> Да, логи были после сразу после рестарта 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
>
> nginx какой версии?
>
> [...]
>
> Maxim Dounin
>
> p.s. Please do not top-post. Thank you.
>
>>
>> Дмитрий
>>
>> 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 mailing list
>> nginx-ru на nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
Подробная информация о списке рассылки nginx-ru