httpd持久化连接:
作用:连接建立后,每个资源获取结束不会断开连接,而继续等待其他资源请求并完成传输。
1、KeepAlive Off|On :表示是否打开持久化连接功能
2、MaxKeepAliveRequests 100:表示连接的最大请求次数。超过100个连接之后,会断开最先的连接
3、KeepAliveTimeout 15:15秒,在连接15秒过后没有进行任何操作则会断开连接。
比如:打开KeepAlive功能是这样子的:
首先是在/var/www/html/目录下创建一个文件index.html,并且写入内容“Test Page”
然后在/etc/httpd/conf.d目录下创建一个新的配置文件中并写入如下内容:
重启一下服务:
[root@ELK-chaofeng07 conf.d]# telnet 172.16.0.57 80
Trying 172.16.0.57...
Connected to 172.16.0.57.
Escape character is ‘^]‘.
GET /index.html HTTP/1.1
Host: 172.16.0.57 #手动输入两行内容输入完之后按下回车键
HTTP/1.1 200 OK
Date: Thu, 07 Mar 2019 03:40:51 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 07 Mar 2019 03:09:39 GMT
ETag: "a-583786fd65dea"
Accept-Ranges: bytes
Content-Length: 10
Content-Type: text/html; charset=UTF-8
Test Page #显示出此行内容之后,系统会等待你10秒钟,如果这10秒内你不做任何处理,系统服务会自动断开连接。
Connection closed by foreign host.
终端中,红色背景是我手动交互式输入的,两行都输完之后,等待10秒钟没有手动输入再次发出请求,此时服务会主动断开连接。这就是打开KeepAlive的作用,系统会等待用户指定时间发起其他请求,如果没有其他请求之后,则会主动断开连接。
安装httpd之后,默认是打开KeepAlive功能的,就比如上面的测试结果分析。
比如:也可以关闭KeepAlive测试一下:
重启一下:
[root@ELK-chaofeng07 conf.d]# telnet 172.16.0.57 80 telnet 172.16.0.57 80 Trying 172.16.0.57... Connected to 172.16.0.57. Escape character is ‘^]‘. GET /index.html HTTP/1.1 Host:172.16.0.57 HTTP/1.1 200 OK Date: Thu, 07 Mar 2019 03:24:19 GMT Server: Apache/2.4.6 (CentOS) Last-Modified: Thu, 07 Mar 2019 03:09:39 GMT ETag: "a-583786fd65dea" Accept-Ranges: bytes Content-Length: 10 Connection: close Content-Type: text/html; charset=UTF-8 Test Page #显示完此行内容之后,系统立即断开连接。 Connection closed by foreign host.
关闭KeepAlive之后,在客户端向服务器发起一次请求之后,服务器会立马断开连接,不再等待用户发起其他的请求,因此我们更建议打开KeepAlive的功能。
在我测试的httpd服务上,httpd的版本是2.4.6。这个版本默认是打开KeepAlive功能的,并且设置超时时间也是比较短的,上面的实验演示中,我自己定义的配置文件是10秒钟,然后我删除了自己的配置文件,然后测试默认的KeepAlive服务状态,发现KeepAlive默认是开启状态,但是httpd服务默认是5秒钟。我还发现/etc/httpd/conf.d/目录下的自定义的配置文件的优先级大于系统默认的配置文件。
原文:https://www.cnblogs.com/FengGeBlog/p/10488713.html