Help with Keepalive on NGINX

Maxim Dounin mdounin at mdounin.ru
Fri Jul 26 10:03:21 UTC 2013


Hello!

On Fri, Jul 26, 2013 at 10:33:42AM +0100, Nick Toseland wrote:

> Hi All,
> 
> I am struggling to get keepalives to work on Nginx, I believe I have
> added the necessary configuration. Can you take a look and suggest
> where I may be going wrong or what I am missing?
> 
> We have a nginx server that sits in front of a varnish server which
> sits in front of the back-end servers
> 
> http {
> 
>     keepalive_timeout  120;
>     keepalive_requests 500;
> 
>     upstream varnish_rand {
>         server 172.21.1.1:80;
>         keepalive 256;
>     }
> 
>     server {
>         server_name    www.abc.com
> 
>         location / {
> 
>             proxy_pass   http://varnish_rand;
>             proxy_http_version 1.1;
> 
>             }
> }
> 
> You can see that the nginx server is using HTTP1.1 to communicate
> with Varnish
> 
> *varnishtop -i RxProtocol *
> list length 1
> 
>      9.67 RxProtocol     HTTP/1.1
> 
> However there nginx always send a "connection close"
> 
> *varnishtop -c -i RxHeader -I "Connection"*
> 
> list length 1
> 
>      9.59 RxHeader     Connection: close

That's because nginx uses "Connection: close" by default, 
regardless of a protocol version used.  If you want keepalive to 
work, you have to instruct nginx to don't send "Connection: 
close" using the proxy_set_header directive.

For more information see documentation at 
http://nginx.org/r/keepalive.

-- 
Maxim Dounin
http://nginx.org/en/donation.html



More information about the nginx mailing list