Re: балансировка по dns rr ?

Maxim Dounin mdounin на mdounin.ru
Чт Авг 12 23:58:22 MSD 2010


Hello!

On Fri, Aug 13, 2010 at 12:01:43AM +0600, Илья Шипицин wrote:

> а если, допустим, указать вот так
> 
> upstream myupstream {
>    ip_hash;
>       server vm-backend:8066;
> }
> 
> а  в свою очередь dns-имя vm-backend имеет несколько cname или a записей.
> как будет балансировка работать ? на всех по кругу ? или на одного,
> который первый разрешится в момент запуска ?

http://sysoev.ru/nginx/docs/http/ngx_http_upstream.html#server

% Если доменное имя резолвится в несколько адресов, то 
% используются все.

При чтении конфига будет сделан resolve имени, все полученные 
ip-шники будут далее использоваться для балансировки запросов (в 
соответствии с выбранным методом балансировки).

> я так понимаю, тут отличия будут в том, будет ли разрешаться имя при
> запуске (и жестко фиксируется) или разрешается при каждом запросе
> (тогда dns будет отдавть по кругу)

Резолвинг только при чтении конфига, дальше - балансировка по тому 
что получили.  Если dns отдаст не все A-записи, а скажем только 
одну - значит nginx будет ходить только на один ip-адрес.

Для того чтобы резолвинг был на каждый запрос - надо определить 
резолвер и использовать proxy_pass с переменными.  Но во первых - 
"Не советую, гражданин... мнэ-э... не советую. Съедят" (c), а во 
вторых - это как-то слабо сочетается с ip_hash.

Maxim Dounin



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