client关闭连接很好想,有点要搞清楚的是,server端什么时候会发起丢掉连接的操作:
有些是应用程序控制的 。nginx.conf为例
keepalive_timeout 0;
[root@lvs-2 ~]# curl -I http://www.XXX.com
Connection: close
keepalive_timeout 600;
[root@lvs-2 ~]# curl -I http://www.XXX.com
Connection: keep-alive
这种规定了连接时间的,到了时间连接会断掉 。
如果没有规定的,则按照系统keepalived定时器的设置进行,具体参数如下:
[root@web]# sysctl -a|grep tcp_keepalive
view sourceprint?
1 net.ipv4.tcp_keepalive_intvl = 75
2 net.ipv4.tcp_keepalive_probes = 9
3 net.ipv4.tcp_keepalive_time = 7200
4 连接两端一直没发送数据,间隔120分钟,两小时后开始第一次探测,间隔75秒后第二次探测,探测9次,最后放弃连接 。有四种探测的情况,详见
四种状况其实最后一种没什么意义,能考虑到下面三种就行了
1 client正常,每进行一次通讯,net.ipv4.tcp_keepalive_time重置一次 。
2 一直到7200+75*9后也无法获取client反馈信息,则认为client已经关闭并终止连接(连接超时)
3 client重启,收到探测后返回一个复位(RST)信息 。server收到后终止连接(连接被对方复位)
【Linux内核参数优化】
推荐阅读
- 史上最全Linux服务器程序规范
- 浅谈,linux防火墙,Firewalld服务
- Linux 虚拟内存和物理内存的理解
- 一步一步带你解决linux系统CPU资源耗尽难题
- Kali Linux实战篇:Windows Server 2012 R2系统漏洞利用过程
- Linux系统架构-----Apache与Nginx动静分离
- 困扰无数人的Linux Vim退出方法,原来这么简单?
- Linux下如何用nginx+ffmpeg搭建流媒体服务器
- 只会用chmod 777?Linux下的文件权限居然还有这么多骚操作
- Linux文件与目录管理 目录存放着Linux的源代码