ПРОЕКТЫ 


  АРХИВ 


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: резолвинг адреса бэкенда



On Thu, 30 Dec 2004, Dmitry Kondratyev wrote:

> Igor Sysoev wrote:
>
> >>Игорь, насколько я помню, ты как-то писал, что резолвинг имени бэкенда
> >>происходит только один раз, при запуске. Нельзя ли сделать, чтобы он
> >>проходил при каждой попытке проксирования, чтобы "умный" днс-сервер
> >>возвращал адрес наиболее пригодного на данный момент сервера? mod_accel
> >>такое вроде умел, хотелось бы подобное в nginx увидеть. :-)
> >
> > Резолвинг происходит не только при запуске, но и при каждом сигнале -HUP.
> > Что касается резолвинга при каждом запросе, то тут вот какая проблема:
> > gethostbyname() - это блокирущаяся операция и на время ответа от dns-сервера
> > рабочий процесс nginx'а не будет обслуживать запросы. Уменьшить это время
> > можно, например, так - кэшировать адреса, скажем, на минуту и поставить
> > dns-сервер на ту же машину, что и nginx. Но планах есть написание своего
> > резолвера, который бы не блокировал процесс.
>
> А при убивания по sighup процессы, которые уже имеющиеся кип-элайвы
> держат, буду новые адреса использовать? Может и такую схему тогда
> использую. А может апача всё-таки в качестве ещё одной прослойки
> поставлю тогда. А может дождусь пока у тебя резолвер свой будет. Всё
> зависит от того, когда я свой днс-сервер этот допишу. :-)

По -HUP старые процессы используют старую конфигурацию и старые адреса.
Keep-alive соединения после получения -HUP закрываются так:
*) соедиение держится открытым до истечения таймаута (это фича);
*) если по этому соединению пришёл запрос, то окончанию его обработки
   соедиение закрывается.

> > Кстати, проблема с "Can't assign requested address" разрешилась или нет ?
>
> Да, сейчас у меня везде 0.1.11 - проблем никаких нет.

То есть,

net.inet.ip.portrange.randomized=0
net.inet.ip.portrange.first=1024
net.inet.ip.portrange.last=65535

помогли ?

Кстати, я правильно понимаю, что эта ошибка была только при соедиении
к серверу на той же машине ?


Игорь Сысоев
http://sysoev.ru




 




Copyright © Lexa Software, 1996-2009.