перезапуск backend`а (service httpd restart) занимает меньше секунды времени, но если в этот период времени на сервер приходят запросы - клиенты получают от nginx`а ответ "502 Bad Gateway", и в error.log
при этом пишется ошибка:
[error] 14271#0: *49 connect() failed (111: Connection refused) while reading response header from upstream
если клиент в браузере нажмет F5, он увидит запрашиваемую страницу, к этому времени backend уже успеет запуститься и обработает запрос.
хочется найти наиболее изящный способ спрятать перезапуск backend`а от клиентов, чтобы вместо отказа в обслуживании они получили только небольшую задержку ответа, в идеале - вообще бы ничего не заметили.
единственный вариант, который я пока что смог найти - это запустить еще один httpd на другом ip, например, 127.0.0.2, и для всех хостов вместо
первый httpd пойдет перезапускаться, например, если будет поврежден opcode cache
у eAccelerator`а. чтобы backup`ный остался, его надо запускать без eAccelerator. подозреваю, что других вариантов избежать 502, кроме двух независимых httpd нет.
хотелось бы узнать какие еще народ использует варианты повышения живучести
backend`ов, кроме установки новых физических серверов - это и так понятно.