ПРОЕКТЫ 


  АРХИВ 


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]

backend restart && 502 Bad Gateway



Здравствуйте, All!

перезапуск 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, и для всех хостов
вместо

    location / {
        proxy_pass http://127.0.0.1;
    }

прописать

    location / {
        proxy_pass  http://backend;
    }

где backend - это
    
upstream  backend  {
    server   http://127.0.0.1;
    server   http://127.0.0.2 backup;
}

первый httpd пойдет перезапускаться, например, если будет поврежден opcode cache
у eAccelerator`а. чтобы backup`ный остался, его надо запускать без eAccelerator.
подозреваю, что других вариантов избежать 502, кроме двух независимых httpd нет.

хотелось бы узнать какие еще народ использует варианты повышения живучести
backend`ов, кроме установки новых физических серверов - это и так понятно.

PS 
http://2bits.com/articles/php-op-code-caches-accelerators-a-must-for-a-large-site.html
   ...
   Drawbacks of PHP op-code caches: Segmentation Faults
   ...
   
http://2bits.com/articles/logwatcher-restart-apache-after-a-segmentation-fault.html
   ...
   logwatcher: restart Apache after a segmentation fault
   ...
-- 
Best regards,
 Gena                          mailto:makhomed@xxxxxxxxxxxxxx





 




Copyright © Lexa Software, 1996-2009.