KEEPALIVE

Keepalived配置与应用实践

一.keepalived虚拟路由管理

1.克隆7版本主机4台

2.配IP

KA1

KA2

real1

real2

3.real1,2安装httpd

4.地址位置

5.启动服务

6.测试

7.KA1,2安装

8.配置

全局设定

9.重启查看

10.将ka1的复制到ka2

11.修改ka2

12.抓包测试

二、开启通信功能及独立日志

keepalived虚拟路由的通讯设定

1.配置

2.ka2相同

3.测试

keepalived日志分离

1.配置

2.重启

3.修改

4.重启

三、独立子配置文件

1.指定路径

2.重启

出错

3.修改

4.重启

5.查看

四、非抢占和延迟抢占

1.配置

ka1

ka2

2.重启

3.延迟抢占

ka1

ka2

4.5s后

五、组播变单播

1.配置

ka1

ka2

2.测试

六、邮件通知

1.安装

2.进邮箱

3.配置

4.发送信息

5.查看

6.自动发送脚本

ka1,2同样

给权(同样)

调用(同样)

重启(同样)

七、keepalived+lvs

keepalived-双主模式

1.配置

2.ka2

3.重启

4.查看

keepalived-ipvs设定

1.设定vip,r1,r2

2.设置

3.查看

4.复制

5.查看

6.安装

7.编辑

ka2

8.重启

9.清除策略,重启

10.查看,还是有

11.访问

keepalived-vrrp脚本控制vip

1.配置

2.给权限

3.定义

4.重启

八、keepalived+haproxy的高可用集群

1.安装

2.配置

生效

ka2相同

启动

3.删除vip(r1,r2同样)

4.修改(ka1,2)

5.测试

6.配置(ka1,2)

7.修改(ka1,2)

重启

8.当你ka1,2其中一台关闭服务也不影响整体结果运行

KeepAlive分为TCP的KeepAlive和HTTP的Keep - Alive,二者是不同的概念[^1]。 ### HTTP Keep - Alive HTTP Keep - Alive的意图是让TCP连接活得更久一点,以便在同一个连接上传送多个HTTP请求,从而提高socket的效率。例如在浏览网页时,如果开启了HTTP Keep - Alive,浏览器与服务器建立一次TCP连接后,就可以在这个连接上连续发送多个HTTP请求和接收响应,而不需要为每个请求都重新建立TCP连接,减少了建立和关闭连接的开销,提升了性能。 ### TCP KeepAlive TCP KeepAlive是TCP的一种检测TCP连接状况的保鲜机制。当网络两端建立了TCP连接之后,在闲置(双方没有任何数据流发送往来)了`tcp_keepalive_time`后,服务器内核就会尝试向客户端发送侦测包,以此来判断TCP连接状况(可能存在客户端崩溃、强制关闭了应用、主机不可达等情况)。 - **配置参数**: - `/proc/sys/net/ipv4/tcp_keepalive_time`:当KeepAlive启用时,TCP发送KeepAlive消息的频度,缺省是2小时。一般可以根据实际情况调整,例如设置为30分钟(1800秒)。可以使用命令`echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time`进行设置。 - `/proc/sys/net/ipv4/tcp_keepalive_intvl`:当探测没有确认时,重新发送探测的频度,缺省是75秒。例如设置为15秒,使用命令`echo 15 > /proc/sys/net/ipv4/tcp_keepalive_intvl`。 - `/proc/sys/net/ipv4/tcp_keepalive_probes`:表示一共会尝试发送侦测包的次数。例如设置为5次,使用命令`echo 5 > /proc/sys/net/ipv4/tcp_keepalive_probes`。 - **工作原理**:如果没有收到对方的回答(ack包),则会在`tcp_keepalive_intvl`后再次尝试发送侦测包,直到收到对方的ack。如果一直没有收到对方的ack,一共会尝试`tcp_keepalive_probes`次,每次的间隔时间分别是`tcp_keepalive_intvl`的倍数,如15s、30s、45s、60s、75s(假设`tcp_keepalive_intvl`为15秒)。如果尝试`tcp_keepalive_probes`次后,依然没有收到对方的ack包,则会丢弃该TCP连接。仅当nginx的`keepalive_timeout`值设置高于`tcp_keepalive_time`,并且距此TCP连接传输的最后一个HTTP响应,经过了`tcp_keepalive_time`时间之后,操作系统才会发送侦测包来决定是否要丢弃这个TCP连接 [^3]。 ### 使用场景及示例 在一些服务器环境中,为了优化性能和资源使用,可以根据实际情况调整KeepAlive的参数。例如,在Linux系统中,可以通过以下命令设置TCP KeepAlive的参数: ```bash # 设置TCP KeepAlive发送消息的频度为30分钟(1800秒) echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time # 设置重新发送探测的频度为15秒 echo 15 > /proc/sys/net/ipv4/tcp_keepalive_intvl # 设置尝试发送侦测包的次数为5次 echo 5 > /proc/sys/net/ipv4/tcp_keepalive_probes ``` ### 注意事项 对于TCP KeepAlive,一般情况下默认的参数可以满足大多数场景的需求,但在一些特殊场景下,例如网络不稳定或者需要更精确地控制连接状态时,就需要根据实际情况调整参数。同时,在使用HTTP Keep - Alive时,服务器和客户端都需要支持该功能才能生效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值