ip_hash in active_active nginx setup
Maxim Dounin
mdounin at mdounin.ru
Thu May 21 18:32:43 UTC 2015
Hello!
On Thu, May 21, 2015 at 12:14:36PM -0400, s_n wrote:
> Hi all,
>
> we want to use a F5 loadbalancer in front of two nginx instances, which
> balance the load to our app-nodes.
>
> The F5 loadbalancer distributes incoming requests via round-robin algorithm
> to the two nginx instances.
>
> The nginx instances should be configured to use ip_hash to distribute the
> requests to the addnodes ensuring sticky sessions. Specific customer
> requirements make the use of cookies to ensure sticky sessions impossible.
>
> I understand, that all nginx instances use the same function to hash the IP
> adress. But i am not sure if the distribution of the hash values to the
> appnodes happens in a consistent way.
>
> I came across the following discussion on github which indicates that the
> same IP address may be forwarded to different appnodes in the scenario
> described above:
>
> http://serverfault.com/questions/511763/do-multiple-nginx-servers-load-balance-the-same-ip-address-to-the-same-backend-w
>
> Long story short / tl;dr:
>
> Will different nginx instances forward requests from the same IP always to
> the same appnode when using ip_hash as a load balancing method?
As long as you use identical lists of servers in the upstream{}
blocks on your nginx instances, balancing on instances should be
identical.
Note though, that if an upstream server is considered down due to
errors, nginx will re-route requests to other servers, see
http://nginx.org/en/docs/http/ngx_http_upstream_module.html#max_fails.
And since different instances (and even different worker processes)
may see different errors, this re-routing may be different.
That is, ip_hash balancing method does not guarantee that all
requests from a specific IP address will be routed to a given
upstream server. Rather, it's a method to minimize (but not to
eliminate) migration of users between upstream servers. Obviously
enough, it's not possible to completely eliminate migration as
long as upstream servers may fail.
--
Maxim Dounin
http://nginx.org/
More information about the nginx
mailing list