Re: upstream max_fails и упавшие сервера

Андрей Урядов anuryadov at gmail.com
Mon Jun 17 13:56:15 UTC 2013


Да


17 июня 2013 г., 17:53 пользователь Maxim Dounin <mdounin at mdounin.ru>написал:

> Hello!
>
> On Mon, Jun 17, 2013 at 04:09:19PM +0400, Андрей Урядов wrote:
>
> > Всем привет.
> >
> > Столкнулся с интересным поведением директивы max_fails в upstream.
> > Версия nginx 1.2.6.
> > Опишу ситуацию.
> >
> > 1. Nginx работает на сервере some_host1. Кусок конфига:
> > upstream fpm {
> >         server <some_host1>:9000 weight=6;
> >         server<some_host2>:9000 weight=4;
> > }
> > 2. В какой-то момент some_host2 зависает (на уровне ОС), т.е. не отвечает
> > на запросы.
> > 3. В логах появляются строки "connect() failed (110: Connection timed
> out)
> > while connecting to upstream". Причем, я считал, что т.к. max_fails не
> > указан, он равен 1, и, стало быть, таких строчек не должно быть, т.к.
> nginx
> > должен перекидывать всех на первый сервер.
> > 4. some_host2 перестартует. На нем запускается fpm.
> > 5. Но почему-то строки из лога не пропадают и клиентам отдаются ошибки.
> > 6. Если перестартовать nginx, то он подцепит оба сервера, и все
> продолжится
> > в штатном режиме.
> >
> >
> > Вопросы:
> > 1. Почему после первого неудачного раза сервер не отрубается? Ведь
> > max_fails равно 1.
>
> После того, как случилась ошибка - nginx будет посылать запросы на
> "плохой" сервер раз в fail_timeout секунд (нюанс: из каждого
> рабочего процесса).  Если он успешно ответит на запрос - то будет
> вновь включён в работу.
>
> > 2. Почему после рестарта сервера nginx его не видит? Он же продолжает его
> > дергать, и мог бы понять, что сервер восстановился.
>
> Если продолжают происходить ошибки - значит, он как-то странно
> восстановился.  Возможно, у него в процессе поменялся ip-адрес?
> Это бы объяснило, почему после рестарта nginx его "увидел".
>
> --
> Maxim Dounin
> http://nginx.org/en/donation.html
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20130617/b55d1082/attachment.html>


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