nginx.conf keepalive 详解

这个选项是用来配置是否长连接的,其实原理和apache是一样的,关于apache中keepalive 相关设置请参考 http://mylinux.5d6d.com/thread-919-1-1.html
但是nginx中的该参数没有on与off的开关,只能去设置超时的时间长短。默认如果不设置该参数的话,系统会设置为75s。
当设置为
keepalive_timeout 0;
此时就关闭了长连接。不妨简单测试一下:
curl  -I -v http://localhost:80
结果为:HTTP/1.1 200 OK
< Server: nginx/1.0.0
Server: nginx/1.0.0
< Date: Tue, 29 Nov 2011 04:25:24 GMT
Date: Tue, 29 Nov 2011 04:25:24 GMT
< Content-Type: text/html; charset=gb2312
Content-Type: text/html; charset=gb2312
< Connection: close
Connection: close
< X-Powered-By: PHP/5.2.8
X-Powered-By: PHP/5.2.8

* Closing connection #0
这里的 Connection状态为 close,意思是已经关闭连接。

当设置为  
keepalive_timeout 10;
再次
curl  -I -v http://localhost:80
结果为:HTTP/1.1 200 OK
< Server: nginx/1.0.0
Server: nginx/1.0.0
< Date: Tue, 29 Nov 2011 04:27:31 GMT
Date: Tue, 29 Nov 2011 04:27:31 GMT
< Content-Type: text/html; charset=gb2312
Content-Type: text/html; charset=gb2312
< Connection: keep-alive
Connection: keep-alive
< X-Powered-By: PHP/5.2.8
X-Powered-By: PHP/5.2.8
* no chunk, no close, no size. Assume close to signal end

<
* Closing connection #0
这里的connection 状态为 keep-alive

至于,如何配置这个参数呢?这主要看你网站的访问量以及内容,就像是在 http://mylinux.5d6d.com/thread-919-1-1.html 这篇帖子中提及的,分三种情况吧。
但是,本人还是建议你设置为0,即关闭长连接。

添加新评论 »