ПРОЕКТЫ 


  АРХИВ 


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]

Re: Nginx upstream - server down



такого модуля не то, чтобы не хватает .... просто идеология другая.

например, в haproxy очень развит подход с health check-ами, причем они
могут быть сколь угодно программируемы (приложение работает по https,
а для health check используется специальная страница с http
запросами).

это не лучше и не хуже, это просто по-другому.

допустим, вы настроили с интервалом 30 секунд проверку бекенда, бац,
бекенд сдулся, вы по-прежнему думаете, что он живой и отправляете на
него запрос, это хорошо ?

у nginx идеология другая - идем на приложение и смотрим по ситуации,
либо отдаем ответ пользователю, либо идем на следующий бекенд.

не хватает, пожалуй, только настраиваемой Failover strategy, что
делать, если на текущем бекенде сбой

а) прекратить попытки и отдать пользователю ошибку
б) попробовать еще один бекенд
в) пробовать все живые бекенды

сейчас реализован только сценарий "в)"

если у вас много бекендов - делайте маленький тайаут на connect и
будет вам счастье.

9 августа 2011 г. 13:15 пользователь Никита Козлов <niakrisn@xxxxxxxxx> написал:
> 9 августа 2011 г. 4:10 пользователь Sergey Kobzar
> <sergey.kobzar@xxxxxxxxxxx> написал:
>>
>> Максим
>>
>> Спасибо за детальное описание. Идея понятна.
>>
>> В данной реализации есть ньюансы. Например php скрипт "подвис" или база
>> данных залочена (ALTER на таблице в 10G). Соответственно получаем proxy
>> connect timeout и так для _всех_ серверов.
>>
>> Как вариант решения (частный случай) - сделать "пингалку". У того же
>> php-fpm есть ping.path
>> (http://php.net/manual/en/install.fpm.configuration.php). И если ответа нет
>> N sec, то тогда действительно сервер в дауне. На что правим список backend
>> серверов в конфиге и делаем nginx reload.
>>
>> Может глупости пишу на ночь глядя... Здравая критика приветствуется.
>
> Есть http://wiki.nginx.org/HttpHealthcheckModule.
> Грамотной реализации такого функционала крайне не хватает в nginx, очень
> часто случаются такие моменты когда бэкэнд по каким-то причинам не работает,
> или frontand на проксируемом сервере работает, а бэкэнд нет.
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@xxxxxxxxx
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
>
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.