Apache(KeepAlive)的设置
HTTP 默认行为是在新的连接上请求文件,这会花费许多时间启动与关闭连接。
使用KeepAlive可以单一连接时进行多个请求,因此可以减少建立socket连接所需要的时间,而又会加快客户端在请求网页内容的加载速度。
KeepAlive设定:
KeepAlive On //启用KeepAlive 设定
MaxKeepAliveRequests 100 //指定单一连续时间可以允许多少个保持连接的请求
KeepAliveTimeout 15
KeepAliveTimeout 如何设定最佳值:
在没有接受其他请求时,KeepAliveTimeout 指定会持续开启特定连接的时间。
此指令的最佳设定完全视网站的特性而定。
分析:
KeepAliveTimeout 过期前,用户已点击下一网页内容的链接而进入下一网页,他们会在同一连接获得该文件。
不过,如果该时间过期,他们就需要建立对该下一网页的服务器的新连接。
同时,如果用户从网站下载资源然后离开,Apache 仍然会持续开启连接KeepAliveTimeout 秒,而在这段时间该子进程无法服务任何其他请求。
因此,KeepAliveTimeout设得太大与太小都不适合。
如果将KeepAliveTimeout设的太大,在server-status里会看到许多进程保持连接状态却是空闲的。
如果将KeepAliveTimeout设的太小,则当单一客户端在短暂的访问期间请求许多连接时,会产生类似于完全停用 KeepAlive的情况。
因此,在一般情况下,将KeepAliveTimeout 设得太大引起的问题会比设得过小引起的问题小些。
参考文档:
http://httpd.apache.org/docs/2.2/mod/core.html#keepalive
http://httpd.apache.org/docs/2.2/mod/core.html#keepaliverequests
http://httpd.apache.org/docs/2.2/mod/core.html#keepalivetimeout