组团学

Apache 站点优化-长连接

阅读 (124810)

一、长连接介绍

面临问题:

http是一个面向连接的协议,用户完成一次请求需要以下步骤

三次握手

发起请求

响应请求

四次断开

N个请求就重复N次,如果希望用户能够更快的拿到数据,服务器的压力降到最低,让你去优化这个请求过程。

解决方案:

答案很明确,那就是建设每次执行的三次握手和四次断开,最好是一次三次握手建立成功后,在这个数据通道完成所有的请求后,然后在四次断开,这就是优化思路–理想中应该是这样。

三次握手

发起请求

响应请求

发起请求

响应请求

。。。。。

请求全部完成后,四次断开

优化目的:

减少了三次握手和四次断开的次数。

注意事项:

长连接需要服务器和客户端浏览器都支持

长连接特点:

提升用户访问速度

降低服务器压力

大量空闲长连接可能造成服务器压力过大

二、长连接实现

apache2.4默认开启了长连接,长连接时间为5s,修改子配置文件httpd-default.conf可以定义该选项

#开启长连接功能 On为开启 Off为关闭

KeepAlive On

#当keepalive打开时,maxkeepaliverequests指令限制每个连接允许的请求数。如果设置为0,则允许无限请求。我们建议将此设置保持为高值以获得最大服务器性能。不建议大家将这个数值设置为0,防止内存溢出。

MaxKeepAliveRequests 100

长连接时间,默认单位是秒,也可以使用ms 只需在数值后面添加单位就行了。这个值如果你服务器速度快,网络稳定,建议设置小一点,比如3s,因为目前单个请求都是毫秒级的。避免大量空闲长连接消耗你的系统资源。

KeepAliveTimeout 5

实验总结:

一次用户访问的长连接数根据用户浏览器的不同建立的数量不同,比如chrome,每次会同时建立5个长连接,也就是五个数据通道,然后完成数据请求,所以大家都反应chrome浏览器好用,其他浏览器要看情况,不同浏览器的连接数不同。

需要 登录 才可以提问哦