本文指浏览器和nginx之间的keepalive ,而且未经抓包工具验证,期待读者验证后留言!
1.首先是Linux系统级别:
[root@ ~]# sysctl -a |grep tcp_keepalive
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_intvl = 75
默认时长2小时。但是默认关闭,具体每次tcp的连接,要由web服务器决定。
2.然后是nginx的全局层级:
http {
keepalive_timeout 120s 120s;
keepalive_requests 100;
server {
listen 127.0.0.1:3306 so_keepalive=on;
}
}
这里全局2分钟,意思是最大不超过。具体每次连接,取决于server级别控制。
3.server级别:
首先,客户端发来的http请求头connection字段,若是none,就不开启keepalive,若字段值是kee-alive,代表请求长连接,于是参考下述。
取值on是指打开,时间取系统级别和全局级别中较小者。
取值具体时间,指取具体时间和上述2者中较小者。