<div class="gmail_quote">9 августа 2011 г. 4:10 пользователь Sergey Kobzar <span dir="ltr"><<a href="mailto:sergey.kobzar@itcraft.org">sergey.kobzar@itcraft.org</a>></span> написал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Максим<br>
<br>
Спасибо за детальное описание. Идея понятна.<br>
<br>
В данной реализации есть ньюансы. Например php скрипт "подвис" или база данных залочена (ALTER на таблице в 10G). Соответственно получаем proxy connect timeout и так для _всех_ серверов.<br>
<br>
Как вариант решения (частный случай) - сделать "пингалку". У того же php-fpm есть ping.path (<a href="http://php.net/manual/en/install.fpm.configuration.php" target="_blank">http://php.net/manual/en/<u></u>install.fpm.configuration.php</a>)<u></u>. И если ответа нет N sec, то тогда действительно сервер в дауне. На что правим список backend серверов в конфиге и делаем nginx reload.<br>

<br>
Может глупости пишу на ночь глядя... Здравая критика приветствуется.</blockquote><div><br>Есть <a href="http://wiki.nginx.org/HttpHealthcheckModule">http://wiki.nginx.org/HttpHealthcheckModule</a>.<br>
Грамотной реализации такого функционала крайне не хватает в nginx, очень
 часто случаются такие моменты когда бэкэнд по каким-то причинам не 
работает, или frontand на проксируемом сервере работает, а бэкэнд нет. <br></div></div>