nginx.conf keepalive 详解

回复 收藏
这个选项是用来配置是否长连接的,其实原理和apache是一样的,关于apache中keepalive 相关设置请参考 http://www.lishiming.net/thread-919-1-1.html
但是nginx中的该参数没有on与off的开关,只能去设置超时的时间长短。默认如果不设置该参数的话,系统会设置为75s。
当设置为
keepalive_timeout 0;
此时就关闭了长连接。不妨简单测试一下:
curl  -I -v http://localhost:80
结果为:
  1. HTTP/1.1 200 OK
  2. < Server: nginx/1.0.0
  3. Server: nginx/1.0.0
  4. < Date: Tue, 29 Nov 2011 04:25:24 GMT
  5. Date: Tue, 29 Nov 2011 04:25:24 GMT
  6. < Content-Type: text/html; charset=gb2312
  7. Content-Type: text/html; charset=gb2312
  8. < Connection: close
  9. Connection: close
  10. < X-Powered-By: PHP/5.2.8
  11. X-Powered-By: PHP/5.2.8
  12. * Closing connection #0
这里的 Connection状态为 close,意思是已经关闭连接。

当设置为  
keepalive_timeout 10;
再次
curl  -I -v http://localhost:80
结果为:
  1. HTTP/1.1 200 OK
  2. < Server: nginx/1.0.0
  3. Server: nginx/1.0.0
  4. < Date: Tue, 29 Nov 2011 04:27:31 GMT
  5. Date: Tue, 29 Nov 2011 04:27:31 GMT
  6. < Content-Type: text/html; charset=gb2312
  7. Content-Type: text/html; charset=gb2312
  8. < Connection: keep-alive
  9. Connection: keep-alive
  10. < X-Powered-By: PHP/5.2.8
  11. X-Powered-By: PHP/5.2.8
  12. * no chunk, no close, no size. Assume close to signal end
  13. <
  14. * Closing connection #0
这里的connection 状态为 keep-alive

至于,如何配置这个参数呢?这主要看你网站的访问量以及内容,就像是在 http://www.lishiming.net/thread-919-1-1.html 这篇帖子中提及的,分三种情况吧。
但是,本人还是建议你设置为0,即关闭长连接。
2011-11-29 12:28 举报
已邀请:
0

zhongrongzhong

赞同来自:

开始学习{:4_120:}

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: