I’ve been trying to get this setup working:
client ← c0 → nginx1 ← c1 → nginx2 ← c2 → service (http)
where the c1 connection is kept alive between request from from the
outside,
but c0 and c2 are closed after each request. I’ve used the ‘keepalive’
keyword in the upstream nginx1 config, and it works. Unfortunately I
also
use the upstream hash patch on nginx1, and as soon as I enable that
nginx1
closes the connection forcefully. I’ve confirmed this with tcpdump in
both
setups, and it’s the only difference. Any hints to what I can do?
I’m suspecting that the upstream hash module “takes over” the upstream
handling, and thus ignores the ‘keepalive’ keyword, but I’m randomly
guessing.
Thanks,
Allan
Posted at Nginx Forum:
I also just tried the ip_hash module and it also disables the keepalive
functionality
Posted at Nginx Forum:
Hello!
On Fri, Mar 15, 2013 at 03:48:56PM -0400, beaufour wrote:
I’m suspecting that the upstream hash module “takes over” the upstream
handling, and thus ignores the ‘keepalive’ keyword, but I’m randomly
guessing.
Quoting Alphabetical index of directives
: When using load balancer methods other than the default
: round-robin, it is necessary to activate them before the keepalive
: directive.
–
Maxim D.
http://nginx.org/en/donation.html
Maxim D. Wrote:
I’m suspecting that the upstream hash module “takes over” the
upstream
handling, and thus ignores the ‘keepalive’ keyword, but I’m randomly
guessing.
Quoting Alphabetical index of directives
: When using load balancer methods other than the default
: round-robin, it is necessary to activate them before the keepalive
: directive.
Doh! That seems to do the trick. Thanks!
Allan
Posted at Nginx Forum: