error_page 502 /куда-нибудь; <div><br class="webkit-block-placeholder"></div><div>на нгинх-е обработайте нормально эту ошибку <br><br><div><span class="gmail_quote">16.11.07, <b class="gmail_sendername">Gena Makhomed</b> <
<a href="mailto:makhomed@pbank.lutsk.ua">makhomed@pbank.lutsk.ua</a>> написал(а):</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`а ответ "502 Bad Gateway", и в 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> location / {<br> proxy_pass
<a href="http://127.0.0.1">http://127.0.0.1</a>;<br> }<br><br>прописать<br><br> location / {<br> proxy_pass <a href="http://backend">http://backend</a>;<br> }<br><br>где backend - это<br><br>upstream backend {
<br> server <a href="http://127.0.0.1">http://127.0.0.1</a>;<br> server <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> ...<br> Drawbacks of PHP op-code caches: Segmentation Faults<br> ...<br> <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> ...<br> logwatcher: restart Apache after a segmentation fault<br> ...<br>--<br>Best regards,<br> Gena mailto:<a href="mailto:makhomed@pbank.lutsk.ua">makhomed@pbank.lutsk.ua</a><br>
<br><br><br></blockquote></div><br> </div>