Help with Keepalive on NGINX

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

Thanks in advance

Nick

Hello!

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

 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
Module ngx_http_upstream_module.


Maxim D.
http://nginx.org/en/donation.html

Hi Maxim,

Thanks for the reply, a great help. works as expected now :slight_smile:

Have a good weekend

Cheers

Nick