ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


  • To: nginx-ru@xxxxxxxxx
  • Subject: upstream max_fails и упавшие сервера
  • From: Андрей Урядов <anuryadov@xxxxxxxxx>
  • Date: Mon, 17 Jun 2013 16:09:19 +0400
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=2Sk3oWykOE88q8k9+R/+KmJxIXM4VB6rv1pcWN1FPgE=; b=zneG8VqzQOZ9PH62ZgRi24xipjBdzlq/mre0RRAMGHuhVs/mP9jSH/ebWfG78MtY3/ pWQytbm4X8HqH2FKbzabotGxnAxphF7qhIxWjKRyEcAn7KtJezEYit8dxBz92aa0Hukt 2pXUucUvR5Mh3zjLL5vyLEa/sAqOn5JuQVsyOjOeTylhBPtyQAndocZ5ifCvhIxvh7Xd dk75RO6G/6kEPjohOKV6uz9E4BlWHDTfvcigq7kPXZIjsGKe2OfSrY+BWO+3wpNrB9DI mz2oyyAhzV86bmpWssk9/hu4y18fG2ydkb7251qx+czzBC62grTSb6S1S0H0WLP4zQYf iDJQ==

Всем привет.

Столкнулся с интересным поведением директивы 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.
2. Почему после рестарта сервера nginx его не видит? Он же продолжает его дергать, и мог бы понять, что сервер восстановился.

Или, может, это нужно реализовывать другими способами? Переменные там другие выставлять или еще что?
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.