Всем привет.
Столкнулся с интересным поведением директивы 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.