resolver cname ttl

Maxim Dounin mdounin at mdounin.ru
Wed Apr 3 10:42:44 UTC 2013


Hello!

On Wed, Apr 03, 2013 at 11:25:55AM +0400, Xek PL wrote:

> Привет всем!
> 
> Такая проблема: resolver не учитывает TTL для CNAME записей.
> 
> Например,в DNS указано:
> upstream 60 CNAME cname1
> cname1  86400 A 10.10.10.10
> 
> По тестам получается, что upstream резолвится раз в сутки.
> Хотя должен раз в 60 сек.
> 
> Протестировал на версиях 1.2.7, 1.3.15
> Баг? 
> Или есть какие-то соображения для такой работы?

Во встроенном резолвере не очень хорошо сделана обработка 
нескольких записей в одном DNS-ответе, и в частности в 
вышеописанном случае, если обе записи приходят вместе - то CNAME 
будет "пропущен", и кеш resolver'а попадёт сразу адрес, с ttl 
86400.

Простой workaround - использовать

    resolver ... valid=30s;

См. http://nginx.org/r/resolver.

Если не лень - было бы полезно нарисовать тикет в trac'е, 
http://trac.nginx.org.  Если проблема очень болит и мешает 
ходить - приходите на http://nginx.com, договоримся.

-- 
Maxim Dounin
http://nginx.org/en/donation.html



Подробная информация о списке рассылки nginx-ru