Upstream keepalive with upstream hash

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:
http://forum.nginx.org/read.php?2,237417,237417#msg-237417

I also just tried the ip_hash module and it also disables the keepalive
functionality :frowning:

Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,237417,237420#msg-237420

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 http://nginx.org/r/keepalive:

: 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 http://nginx.org/r/keepalive:

: 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:
http://forum.nginx.org/read.php?2,237417,237489#msg-237489

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs