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