error_page 502 /куда-нибудь;&nbsp;<div><br class="webkit-block-placeholder"></div><div>на нгинх-е обработайте нормально эту ошибку&nbsp;<br><br><div><span class="gmail_quote">16.11.07, <b class="gmail_sendername">Gena Makhomed</b> &lt;
<a href="mailto:makhomed@pbank.lutsk.ua">makhomed@pbank.lutsk.ua</a>&gt; написал(а):</span><blockquote class="gmail_quote" style="margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex">Здравствуйте, All!<br>
<br>перезапуск backend`а (service httpd restart) занимает меньше секунды времени,<br>но если в этот период времени на сервер приходят запросы - клиенты получают<br>от nginx`а ответ &quot;502 Bad Gateway&quot;, и в error.log
 при этом пишется ошибка:<br><br>[error] 14271#0: *49 connect() failed (111: Connection refused) while reading response header from upstream<br><br>если клиент в браузере нажмет F5, он увидит запрашиваемую страницу,<br>к этому времени backend уже успеет запуститься и обработает запрос.
<br><br>хочется найти наиболее изящный способ спрятать перезапуск backend`а<br>от клиентов, чтобы вместо отказа в обслуживании они получили только<br>небольшую задержку ответа, в идеале - вообще бы ничего не заметили.<br>
<br>единственный вариант, который я пока что смог найти - это запустить<br>еще один httpd на другом ip, например, <a href="http://127.0.0.2">127.0.0.2</a>, и для всех хостов<br>вместо<br><br>&nbsp;&nbsp;&nbsp;&nbsp;location / {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_pass 
<a href="http://127.0.0.1">http://127.0.0.1</a>;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>прописать<br><br>&nbsp;&nbsp;&nbsp;&nbsp;location / {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_pass&nbsp;&nbsp;<a href="http://backend">http://backend</a>;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br><br>где backend - это<br><br>upstream&nbsp;&nbsp;backend&nbsp;&nbsp;{
<br>&nbsp;&nbsp;&nbsp;&nbsp;server&nbsp;&nbsp; <a href="http://127.0.0.1">http://127.0.0.1</a>;<br>&nbsp;&nbsp;&nbsp;&nbsp;server&nbsp;&nbsp; <a href="http://127.0.0.2">http://127.0.0.2</a> backup;<br>}<br><br>первый httpd пойдет перезапускаться, например, если будет поврежден opcode cache
<br>у eAccelerator`а. чтобы backup`ный остался, его надо запускать без eAccelerator.<br>подозреваю, что других вариантов избежать 502, кроме двух независимых httpd нет.<br><br>хотелось бы узнать какие еще народ использует варианты повышения живучести
<br>backend`ов, кроме установки новых физических серверов - это и так понятно.<br><br>PS <a href="http://2bits.com/articles/php-op-code-caches-accelerators-a-must-for-a-large-site.html">http://2bits.com/articles/php-op-code-caches-accelerators-a-must-for-a-large-site.html
</a><br>&nbsp;&nbsp; ...<br>&nbsp;&nbsp; Drawbacks of PHP op-code caches: Segmentation Faults<br>&nbsp;&nbsp; ...<br>&nbsp;&nbsp; <a href="http://2bits.com/articles/logwatcher-restart-apache-after-a-segmentation-fault.html">http://2bits.com/articles/logwatcher-restart-apache-after-a-segmentation-fault.html
</a><br>&nbsp;&nbsp; ...<br>&nbsp;&nbsp; logwatcher: restart Apache after a segmentation fault<br>&nbsp;&nbsp; ...<br>--<br>Best regards,<br> Gena&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mailto:<a href="mailto:makhomed@pbank.lutsk.ua">makhomed@pbank.lutsk.ua</a><br>
<br><br><br></blockquote></div><br>&nbsp;</div>