Selection of server in upstream directive using hash

Ruben rdocter at gmail.com
Mon Oct 9 09:51:54 UTC 2017


First of all thanks for your reply. But what happens if I have for example
a hostname: test, which resolves to a randomized list of multiple ip's.
Such that when I do:

dig test
10.0.0.8
10.0.0.9
10.0.0.10

and a few moments later

dig test
10.0.0.10
10.0.0.8
10.0.0.9

Is it then still consistent on the ip's or is the consistency just on the
name "test" in this case?

>From the docs I read that it resolves the hostname and injects the ip's as
server when multiple ip's are returned. But it's not completely clear on
which the hash is acting.

I am asking this, because docker constantly returns a randomized fixed list
of ip's (for dns load balancing). But I always want to route a user,
targetting for some url, to the same container.





2017-10-09 11:25 GMT+02:00 Roman Arutyunyan <arut at nginx.com>:

> Hi Ruben,
>
> On Mon, Oct 09, 2017 at 09:33:55AM +0200, Ruben wrote:
> > I was wondering what the selection algorithm is for choosing a server in
> > the upstream directive using hash. Is the selection based on the ip of
> the
> > server or is it based on the position of the list.
> >
> > So if I have for example the following configuration:
> >
> > upstream test {
> >   hash $arg_test;
> >   server 10.0.0.10;
> >   server 10.0.0.9;
> >   server 10.0.0.8;
> > }
> >
> > or (ip's in different order)
> >
> > upstream chat {
> >   hash $arg_test;
> >   server 10.0.0.8;
> >   server 10.0.0.9;
> >   server 10.0.0.10;
> > }
> >
> > If someone is targeting an url with ?test=1, is it in both configs
> directed
> > to the same ip or not. So is the selection based on the ip or based omn
> the
> > position in the list.
>
> The regular (non-consistent) hash balancer selects a server based on the
> position in the list.  However, the consistent hash balancer
> (hash $arg_test consistent) makes a selection based on the server name/ip
> specified in the "server" directive.
>
> --
> Roman Arutyunyan
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20171009/d4afba60/attachment.html>


More information about the nginx mailing list