养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

在Linux如何使用KeepAlive

时间:2024-10-07 14:29:37

用户通过Client访问的是LVS的VIP,VIP后端挂载的RealServer鋈守踬痊是Nginx服务器,Client可以是浏览器也可以是一个客户端程序,LVS默认保持TCP的Session为9扉钛笆哇0s,超过90s没有TCP报文在链接上传输,LVS就会给两端发送RESET报文断开链接。

工具/原料

计算机

虚拟机

方法/步骤

1、首先KeepAlive并不是默认开启的,在Linux系统上没有一个全局的选项去开启TCP的KeepAlive,需要开启KeepAlive的应用必须在TCP的socket中单独开启。

在Linux如何使用KeepAlive

2、接着TCP在建立链接之后,HTTP协议使用TCP传输HTTP协议的请求Request和响应Response数据,一次完整的HTTP事务。

在Linux如何使用KeepAlive

3、然后先找到的选项是keepalivetimeou,当keepalivetimeout的值为0时表示关闭keepalive,当keepalivetimeout的值为一个正整数值时表示链接保持多少,把keepalivetimeout设置成75s。

在Linux如何使用KeepAlive

4、从TCP层面Nginx不仅要和觊皱筠桡Client关心KeepAlive,而且还要和Upstream关心KeepAlive,同时从HTTP协议贫脊雪赙层面,Nginx需要和Client关心Keep-Alive,如果Upstream使用的HTTP协议,还要关心和Upstream的Keep-Alive。

在Linux如何使用KeepAlive

5、接着配置TCPKeepAlive,查找通过哪个选项配置,最后listen指令的so_keepalive选项能对TCPsocket进行KeepAlive的配置。

在Linux如何使用KeepAlive

6、最后通过设置listen80,so_keepalive=60s,之后成功解决Nginx在LVS保持长链接的问题,避免了使用其他高成本的方案,在商用负载设备上如果遇到类似的问题同样也可以通过这种方式解决。

在Linux如何使用KeepAlive

© 一点知识