ip_hash and multiple clients on the same host

Sergey A. Osokin osa at freebsd.org.ru
Fri Oct 30 20:46:46 UTC 2020

On Fri, Oct 30, 2020 at 11:29:39AM -0400, bobfang_sqp wrote:
> Hi I am using nginx as a load balacer and I require sticky session (same
> client always go to the same server), for this purpose I use this following
> setup:
>     upstream backend {
>        ip_hash;
>        server host1:8000;
>        server host2:8000;
>     }
> The `ip_hash` directive is what I learned from online docs, but I am just
> wondering does this mean that all the requests from the same host will be
> routed to the same upstream server? Since I may have multiple clients
> running on the same host, I want to still distribute these requests to
> different upstream servers but if I am using ip_hash does that imply if two
> clients are on the same host they will be routed to the same server because
> they share the same ip? There seems to be some more advanced configs to
> achieve sticky session but seems that would require nginx plus which I dont
> have...  My intention is that even if two clients come from same host they
> should probably go to different server, but after they are assigned an
> upstream server they should stick to that one. Thanks!


a couple of options in this case:
- sticky session feature is available as part of commecial subscription with
  NGINX Plus;
- NGINX Sticky module for NGINX OSS is available in GH, here's the link to
  one of the forks, https://github.com/ayty-adrianomartins/nginx-sticky-module-ng


More information about the nginx mailing list