ПРОЕКТЫ 


  АРХИВ 


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]

Re: backend restart && 502 Bad Gateway


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: backend restart && 502 Bad Gateway
  • From: "Alexey Karagodov" <karagodov@xxxxxxxxx>
  • Date: Fri, 16 Nov 2007 10:49:03 +0300
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; bh=ZkxjioXQm/yyj4WDaPmJFnhEJufuED+5ElbLi2fI+Os=; b=qZN60eTzeXewsHSQvfZjY26hkaz0T11TbUuaNYS5ZJn9pPHR1S8fiJS1N8bAz7tKbvnmIh8ajvAmNkohHMyj1Ph6wR0mp9qFtlyHuZIX5OY9mB09q5RsnQUkZMj5OowjUzKs+wLKW75Ace4+9VA78Mvf+DXy5fZlgwl5VGIlVPc=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=FjpaUpAWFFkgODgqcQPjoX98u1WBHyT0uEyIfRiN9DFZ3oBdEEC/xBx45FkvQ80PZ4FTM/Df7yIDyIb29eqhI8IjeDFlMu35nNZFIm/yVxUPKjOCmkEpQ1eDxujp6OImt0RGNhsUVbaelVMfwSjsnboAbqJWi9YMNIn2LJWlFdE=
  • In-reply-to: <70187277.20071116044403@xxxxxxxxxxxxxx>
  • References: <70187277.20071116044403@xxxxxxxxxxxxxx>

error_page 502 /куда-нибудь; 

на нгинх-е обработайте нормально эту ошибку 

16.11.07, Gena Makhomed < makhomed@xxxxxxxxxxxxxx> написал(а):
Здравствуйте, 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.