LOADING STUFF...

Apache的长连接

–>

Apache长连接:

KeepAlive Off/On 保持连接,会减少三次握手,但是会消耗内存,是否打开,取决于单位时间内是否进行多次连接(三次握手),

一个连接有多次请求的,建议打开,并适当调整KeepAliveTimeout时间。

在Apache的httpd-default.conf中,KeepAlive指的是保持连接活跃,如果将KeepAlive设置为On,那么来自同一客户端的请求就不需要再一次连接,避免每次请求都要新建一个连接而加重服务器的负担。保持连接是基于来源的IP地址的。

KeepAlive的连接活跃时间当然是受KeepAliveOut限制的,如果第二次请求和第一次请求之间超过KeepAliveTimeOut的时间的话,第一次连接会中断,再新建第二个连接。

  所以,一般情况下,图片较多的网站应该把KeepAlive设为On,但是KeepAliveTimeOut应该设置为多少秒就是一个值得讨论的问题了。

如果KeepAliveTimeOut设置的时间过短,例如设置为1S,那么Apache就会频繁的建立新连接,当然会消耗很多的资源;反过来,如果KeepAliveTimeOut设置的时间过长,例如设置为300秒,那么Apache中肯定有很多无用的连接会占用服务器的资源,也不是一件好事情,所以这是需要综合考虑的问题!!

长连接配置:

[[email protected] ~]# vim /etc/httpd/httpd.conf

需要将httpd-default.conf调用的include打开;#取消掉!

[[email protected] ~]# vim /etc/httpd/extra/httpd-default.conf 

其中:

MaxKeepAliveRequests  默认 100    #最大活跃请求

一个已经建立好的Keep-Alive连接,允许发送的请求的个数,一旦建立连接,要么就是个数达到了,然后断开,要么就是等KeepAliveTimeOut时间到了断开连接;MaxKeepAliveRequests指令限制了当启用KeepAlive时,每个连接允许的请求数量。如果将此值设为”0“,将不限制请求的数目;一般建议最好将此值设为一个比较大的值,以确保最优的服务器性能;

这个数字的设置,必须考虑在一个时间段内,同一个用户IP访问你的服务会发多少请求,要结合KeepAliveTimeOut参数来考虑。

用户需要间隔时间不大于KeepAliveTimeOut的时间内,连续请求10个文件,那么这个参数就可以设置成10;

如果用户在连续时间里不断请求访问,则这个KeepAliveOut得设置得更多,否则就重新建立连接下载;

一旦用户连续进行了10个请求后,并且这个用户肯定在完成这些请求后5秒内不会再请求,甚至要在之后的更长时间才请求,那么这个KeepAliveTimeOut时间就可以设置的很短,以便尽早断开这种用户,把资源让给其他用户;

 

KeepAlive需要考虑的因素很多,所以突然就明白了,很多企业中需要拿到访问源地址,做运维审计,是有道理的!!

 

TimeOut

默认:60秒

”TimeOut“指令用于设置Apache等待以下三种事件的事件长度;

1、接受一个GET请求耗费的总事件

2、POST或PUT请求时,接受两个TCP包之间的事件

3、应答时TCP包传输中两个ACK包之间的时间

比如:Apache需要把jsp文件传给后端tomcat服务器,而tomcat服务器关了,这时这个链接需要等待的超时时间,由TimeOut控制。

 

总结:

1、如果内存和CPU都足够,开启和关闭KeepAlive对性能影响不大。

2、如果考虑服务器压力,如果同一个客户端IP对服务器会经常访问,建议开启KeepAlive

参考数值:

KeepAlive On

KeepAliveTimeout 30

MaxKeepAliveRequests 100   #这个值一般不需要配置。

 

 

 

本文来源 互联网收集,文章内容系作者个人观点,不代表 本站 对观点赞同或支持。如需转载,请注明文章来源,如您发现有涉嫌抄袭侵权的内容,请联系本站核实处理。

© 版权声明

相关文章