Re: Непонятно про valid у resolver
Maxim Dounin
mdounin на mdounin.ru
Вт Дек 6 16:23:36 UTC 2011
Hello!
On Tue, Dec 06, 2011 at 05:08:56PM +0100, Anton Vorobev wrote:
> Здравствуйте.
> Возникла проблема, не могу докопаться до сути. Пробую новый параметр
> "valid" для "resolver":
>
> ...
> http {
> resolver 111.222.333.444 valid=10s;
> ...
> server {
> ...
> location / {
> proxy_pass http://backend.test:8885;
> }
> ...
> }
> ...
> }
>
>
>
> При изменении DNS записи, nginx не пытается получить IP ни через
> интервал, установленный в valid, ни через TTL, полученный от DNS
> сервера.Судя по tcpdump, nginx получает IP бэкенда только при старте.
> Не могу понять в чём дело, сломал всю голобу. Удалось добраться только
> до того, что u->resolved == NULL в ngx_http_upstream_init_request().
> Кто-нибудь уже использовал valid? Есть идеи в чём дело?
Resolver используется только в том случае, если используется
proxy_pass с переменными и имя сервера на старте [может быть]
неизвестно.
Если proxy_pass без переменных, и соответственно имя сервера
известно на старте, nginx на старте же сделает gethostbyname() и
будет использовать полученные ip-адреса до следующей
переконфигурации.
Если очень надо, чтобы nginx всегда ходил в DNS, то можно сделать
так:
resolver ...
location / {
set $nop "";
proxy_pass http://backend.test:8885$nop;
}
Maxim Dounin
Подробная информация о списке рассылки nginx-ru