On Wed, 29 Dec 2004, Dmitry Kondratyev wrote:
> Игорь, насколько я помню, ты как-то писал, что резолвинг имени бэкенда
> происходит только один раз, при запуске. Нельзя ли сделать, чтобы он
> проходил при каждой попытке проксирования, чтобы "умный" днс-сервер
> возвращал адрес наиболее пригодного на данный момент сервера? mod_accel
> такое вроде умел, хотелось бы подобное в nginx увидеть. :-)
Резолвинг происходит не только при запуске, но и при каждом сигнале -HUP.
Что касается резолвинга при каждом запросе, то тут вот какая проблема:
gethostbyname() - это блокирущаяся операция и на время ответа от dns-сервера
рабочий процесс nginx'а не будет обслуживать запросы. Уменьшить это время
можно, например, так - кэшировать адреса, скажем, на минуту и поставить
dns-сервер на ту же машину, что и nginx. Но планах есть написание своего
резолвера, который бы не блокировал процесс.
Кстати, проблема с "Can't assign requested address" разрешилась или нет ?
Игорь Сысоев
http://sysoev.ru