Re: логика fail_timeout в апстриме.
vinny13 at land.ru
vinny13 at land.ru
Tue Mar 5 08:31:34 UTC 2013
> Да, т.к. это синтетические тесты, то единичные случаи, но в "реале" хотелось бы
> что бы при определённом соотношении max_fail/fail_timeout сервер полностью
> выключался на время из апстрима.
>
> Ваша фраза о том, что состояние upstream-серверов - для каждого рабочего процесса своё,
> подтвердила мои подозрения...
> Тогда получается, что добиться желаемого поведения можно либо запустив nginx
> с одним воркером, либо городить костыли, которые как-то из вне мониторят
> состояние серверов в апстриме и управляют балансировкой запросов на них ?
А в чём смысл? Если на бекенде проблемы - то все рабочие процессы
рано или поздно об этом узнают.
> P.S. Забегая вперёд спрошу следующее - как выбирается какой из воркеров будет
> обрабатывать поступивший HTTP запрос ?
Никак - какому рабочему процессу повезло получить соединение из
ядра, тот и будет обрабатывать запросы в данном соединении.
Есть директива accept_mutex (http://nginx.org/r/accept_mutex/ru),
которая слегка влияет на это "повезло", но она, опять же, никакого
выбора не обеспечивает.
--
Maxim Dounin
http://nginx.org/en/donation.html
----- Конец пересылаемого письма -----
Подробная информация о списке рассылки nginx-ru