Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: резолвинг адреса бэкенда
Igor Sysoev wrote:
Игорь, насколько я помню, ты как-то писал, что резолвинг имени бэкенда
происходит только один раз, при запуске. Нельзя ли сделать, чтобы он
проходил при каждой попытке проксирования, чтобы "умный" днс-сервер
возвращал адрес наиболее пригодного на данный момент сервера? mod_accel
такое вроде умел, хотелось бы подобное в nginx увидеть. :-)
Резолвинг происходит не только при запуске, но и при каждом сигнале -HUP.
Что касается резолвинга при каждом запросе, то тут вот какая проблема:
gethostbyname() - это блокирущаяся операция и на время ответа от dns-сервера
рабочий процесс nginx'а не будет обслуживать запросы. Уменьшить это время
можно, например, так - кэшировать адреса, скажем, на минуту и поставить
dns-сервер на ту же машину, что и nginx. Но планах есть написание своего
резолвера, который бы не блокировал процесс.
А при убивания по sighup процессы, которые уже имеющиеся кип-элайвы
держат, буду новые адреса использовать? Может и такую схему тогда
использую. А может апача всё-таки в качестве ещё одной прослойки
поставлю тогда. А может дождусь пока у тебя резолвер свой будет. Всё
зависит от того, когда я свой днс-сервер этот допишу. :-)
Кстати, проблема с "Can't assign requested address" разрешилась или нет ?
Да, сейчас у меня везде 0.1.11 - проблем никаких нет.
|