Selection of server in upstream directive using hash
Roman Arutyunyan
arut at nginx.com
Mon Oct 9 09:25:09 UTC 2017
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
More information about the nginx
mailing list