keepalive简单配置

一、keepalive相关知识

1.1 keepalive介绍

keepalive即LVS集群当中的高可用架构,只是针对调度器的高可用。是高可用的HA架构。

keepalive就是基于VRRP协议来实现LVS高可用的方案。

  1. 组播地址

    224.0.0.18,根据组播地址进行通信,主备之间发送报文,确定对方是否存活

  2. 根据优先级判定主和备的位置

  3. 故障切换,主挂了,备来接替工作;主恢复了,备继续等待。

  4. 主备之间的切换是VIP地址的切换。

keepalive 是专门为了LVS而出现的,但是不是LVS专用的。

1.2 主、备 调度器

主调度器和备调度器(备可以是多台,一般一主一备)

在主调度器正常工作的时候,备完全处于冗余状态(待命)。备不参与集群的运转,只有当主调度器出现故障时,备才会承担主调度器的工作。一般主调度器恢复功能之后,主会继续作为集群的入口,备回到冗余状态,这个取决于优先级。

keepalive就是调度器的高可用。

VIP地址主备之间的切换,主在工作时,VIP地址只在主上,主停止工作,VIP漂移到备服务器。

在主备优先级不变的情况下,主恢复工作,VIP会飘回到主服务器。

注意事项:

配优先级
配置VIP和真实服务器
主备的virtual_router_id要一致
主备的router_id要区分


1.3 脑裂

问:脑裂是什么?

HA架构(高可用架构)中的一个特殊现象,只要使用VIP地址代理的冗余模式的高可用,都有可能出现脑裂的问题。即主和备同时都有VIP地址。

主和备无法确定各自的身份,同时出现了VIP地址,两边都起来了,但两边都无法使用。

可能原因:

  1. keepalive的配置文件问题,IP地址配置冲突等
  2. 硬件问题:网卡,网线等故障
  3. 防火墙的策略,iptables的策略屏蔽了组播地址的广播,屏蔽了VRRP协议的报文
  4. 两台服务器的时间不同步,也可能导致这个问题
  5. 其他服务配置对keepalive的心跳线检测造成了干扰
怎么解决脑裂?

检查硬件,网卡,网线等
查看主备节点的keepalived日志,查看具体报错信息,定位问题
检查端口冲突和监听设置,确保其他服务没有占用keepalived使用的VIP或者监控端口。
查看配置文件,检查IP地址配置、心跳线检测的间隔和超时时间等配置是否合理
查看防火墙策略,确定心跳线检测消息没有被屏蔽
查看服务器网络状态,以及时间是否同步

二、keepalive相关配置

安装keepalive服务:

yum -y install ipvsadm keepalived
2.1 keepalive模块
  • core 模块:keepalive的核心模块,负责主进程的启动、维护以及全局配置文件的加载

  • vrrp 模块:实现vrrp协议的模块,也就是主功能模块

  • check 模块:负责健康检查。也可以检查后台真实服务器的情况。

  • 2.2 keepalive的配置文件
cd /etc/keepalived
#编辑前先备份
cp keepalived.conf keepalived.conf.bak.current_date
vim keepalived.conf
#在global_defs中
smtp_server 127.0.0.1
router_id lvs_01
#主备的的id不能一样
vrrp_strict
#(取消注释,新版默认应该是取消的)
vrrp_iptables
#添加这一行,否则重启keepalive会添加防火墙规则drop所有keepalive的请求

vrrp_instance VI_1 中
state MASTER
#备的state是 BACKUP
interface ens33
virtual_router_id 10
#下面是VIP地址
virtual_ipaddress{
	20.0.0.100
}

virtual_server 20.0.0.100 80 {
#在VIP模块中设置后台真实服务器
	real_server 20.0.0.21 80 {
		weight 1
		TCP_CHECK {
			connect_port 80
			connect_timeout 3
			nb_get_retry 3
			delay_before_retry 4
		}
	}
	real_server 20.0.0.21 80 {
		weight 1
		TCP_CHECK {
			connect_port 80
			connect_timeout 3
			nb_get_retry 3
			delay_before_retry 4
		}
	}
}
#下面的删除

systemctl restart keepalived

keepalive是专门为LVS打造的,但不是只能为LVS服务。

keepalive也可以和Nginx、Haproxy配合使用

2.3 keepalive+Nginx实现高可用

例:

nginx1 :主 20.0.0.21 keepalive

nginx2 :备 20.0.0.22 keepalive

nginx1是主服务器,监控nginx1的服务状态,如果nginx1的服务停止,需要自动停止nginx1的keepalive,这样VIP才会漂移到nginx2上。可用脚本实现自动关闭keepalive。如果主的nginx服务恢复,VIP再漂移到nginx1上。

nginx1,主的配置

编辑检查nginx状态的脚本

vim /opt/check_nginx.sh
#内容如下
#!/bin/bash
/usr/bin/curl -I http://localhost &>/dev/null
#指定curl命令的路径调用curl命令
#curl -I 仅查看http响应头部信息,而不用下载页面内容,常用于状态检查
if [ $? -ne 0 ]
then
 systemctl stop keepalived
fi

配置keepalived

vim /etc/keepalived/keepalived.conf

vrrp_script check_nginx {
#定义了一个名为 check_nginx 的 VRRP 脚本
	script "/opt/check_nginx.sh"
	#指定脚本位置
	interval 5
	#间隔5秒
}

在vrrp_instance VI_1 中添加 追踪脚本组 track_script ,vrrp会跟踪和监控脚本check_nginx

vrrp_instance VI_1 {
	state MASTER
	interface ens33
	virtual_router_id 10
	track_script {
    check_nginx
	}
}

因为要求只要实现主备切换,后台不存在真实服务器,所以下面的模块都可以删除。只保留到vrrp_instance模块就可以了。

验证:

在nginx1 上 ip addr查看,可以看到VIP20.0.0.100在主服务器上

客户机访问VIP地址,获得nginx1的web服务

关闭nginx1的nginx服务,过5秒,客户机访问VIP地址,获得nginx2的web服务,VIP地址漂移到nginx2上。

  • 18
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nginx是一个高性能的Web服务器和反向代理服务器,可以通过简单配置来实现高性能的动态内容传输。其中,keepalive配置是Nginx能够保持长连接的关键配置,它可以大大提高Nginx的使用性能。 在Nginx中,keepalive配置是指客户端与服务器之间建立的连接的保持时间。通过配置keepalive,Nginx可以保持和客户端之间的连接时间,避免了重复的TCP握手和断开,从而提高了连接的效率。 具体来说,keepalive可以通过以下几个方面进行配置: 1. keepalive_timeout:服务器与客户端之间的连接保持时间,默认为75秒。通过修改这个配置项,可以控制长连接的保持时间。 2. keepalive_requests:一个客户端在一个连接上最大的请求数,默认为100。通过修改这个配置项,可以控制在一个连接上客户端最多可以发送多少个请求。 3. proxy_http_version:代理HTTP的版本号,默认为1.1。通过该配置项可以控制服务器和客户端之间使用的HTTP版本。 4. proxy_next_upstream:在一个代理请求失败时,Nginx会自动切换到下一个请求。通过该配置项,可以控制Nginx切换到下一个请求的时间和方式。 总之,在使用Nginx时,正确配置keepalive是非常重要的,它可以大大提高Nginx的性能和使用效率。需要注意的是,keapalive配置并不是越大越好,需要根据实际的情况进行调整,保证服务器的稳定性和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值