1、安装
官网 https://keepalived.org/
-
进入解压目录执行:./configure --prefix=/usr/local/keepalived --sysconf=/etc
-
make && make install
-
通过 whereis keepalived 查询keepalived 的安装位置
-
运行:/usr/local/keepalived/sbin/keepalived 启动
-
将keepalived 注册为系统服务,通过服务的方式进行启动和关闭
-
cp /keepalived-2.0.18/keepalived/etc/init.d/keepalived /etc/init.d/
-
cp /keepalived-2.0.18/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
-
systemctl deamon-reload
启动:systemctl start keepalived.service
停止:systemctl stop keepalived.service
重启:systemctl restart keepalived.service
-
-
配置文件地址:/etc/keepalived 配置文件详解:
! Configuration File for keepalived global_defs { #路由id,当前节点在集群中唯一的标识,全局唯一 router_id keep_118 } #当前计算机节点 vrrp_instance VI_1 { #当前节点为 主节点MASTER(备用节点为:BACKUP) state MASTER #当前节点绑定的网卡 interface ens33 #保证主备节点一致,集群中所有的节点配置一致即可 virtual_router_id 51 #优先级,谁的优先级高,主节点挂掉后谁就成为MASTER priority 100 #主备之间同步检查的时间间隔,默认1s advert_int 1 #认证授权的密码,防止非法节点的进入 authentication { auth_type PASS auth_pass 1111 } #虚拟出的ip virtual_ipaddress { 192.168.2.16 } } #....其他的虚拟主机配置在高可用架构中无用启动后虚拟出的ip如下:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eJD26QkE-1670837508440)(../../image/image-20221209160056192.png)]](https://i-blog.csdnimg.cn/blog_migrate/f59088c5e7ef05b2f016c381d6651d95.png)
2、Nginx健康检测***
-
创建nginx检测脚本,并添加脚本的执行权限 chmod +x /etc/keepalived/check_nginx_alive_or_not.sh
vim /etc/keepalived/check_nginx_alive_or_not.sh
#!/bin/bash A=`ps -C nginx --no-header |wc -l` # 判断nginx是否宕机,如果宕机了,尝试重启 if [ $A -eq 0 ];then /usr/local/nginx/sbin/nginx # 等待一小会再次检查nginx,如果没有启动成功,则停止keepalived,使其启动备用机 sleep 3 if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then killall keepalived fi fips -C nginx --no-header |wc -l含义是:- ps -C nginx 查询 nginx 的进程信息 -C 是显示父进程

-
–no-header 不显示列的抬头信息
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zvaMZFQe-1670837508442)(../../image/image-20221212155605637.png)]](https://i-blog.csdnimg.cn/blog_migrate/d3f72385f163b2cc93b4db3578f5f3d3.png)
-
|wc -l 展示结果的行数

-
在 keepalived.conf 中 配置监听脚本
! Configuration File for keepalived global_defs { #路由id,当前节点在集群中唯一的标识,全局唯一 router_id keep_118 } #配置nginx 健康检查 脚本地址及定时任务信息 vrrp_script check_nginx_alive { script "/etc/keepalived/check_nginx_alive_or_not.sh" interval 2 # 每隔两秒运行上一行脚本 weight 10 # 如果脚本运行成功,则升级权重+10 # weight -10 # 如果脚本运行失败,则升级权重-10 } #当前计算机节点 vrrp_instance VI_1 { #当前节点为 主节点MASTER(备用节点为:BACKUP) state MASTER #当前节点绑定的网卡 interface ens33 #保证主备节点一致,集群中所有的节点配置一致即可 virtual_router_id 51 #优先级,谁的优先级高,主节点挂掉后谁就成为MASTER priority 100 #主备之间同步检查的时间间隔,默认1s advert_int 1 #认证授权的密码,防止非法节点的进入 authentication { auth_type PASS auth_pass 1111 } #虚拟出的ip virtual_ipaddress { 192.168.2.16 } #nginx 健康检查 启动配置的脚本,可以配置多个 track_script { check_nginx_alive # 追踪 nginx 脚本 } } -
重启 systemctl restart keepalived
3、双机主备
2.1主节点配置
配置文件地址:/etc/keepalived 下,该目录通过安装时运行configure 进行配置:–sysconf=/etc
! Configuration File for keepalived
global_defs {
#路由id,当前节点在集群中唯一的标识,全局唯一
router_id keep_118
}
#当前计算机节点
vrrp_instance VI_1 {
#当前节点为 主节点MASTER(备用节点为:BACKUP)
state MASTER
#当前节点绑定的网卡
interface ens33
#保证主备节点一致,集群中所有的节点配置一致即可
virtual_router_id 51
#优先级,谁的优先级高,主节点挂掉后谁就成为MASTER
priority 100
#主备之间同步检查的时间间隔,默认1s
advert_int 1
#认证授权的密码,防止非法节点的进入
authentication {
auth_type PASS
auth_pass 1111
}
#虚拟出的ip
virtual_ipaddress {
192.168.2.16
}
}
#....其他的虚拟主机配置在高可用架构中无用
2.1备用节点配置
配置文件地址:/etc/keepalived 下,该目录通过安装时运行configure 进行配置:–sysconf=/etc
global_defs {
#路由id,当前节点在集群中唯一的标识,全局唯一
router_id keep_119
}
#当前计算机节点
vrrp_instance VI_1 {
#---- 备用节点注意的地方----> 当前节点为 备用节点为BACKUP
state BACKUP
#当前节点绑定的网卡
interface ens33
#保证主备节点一致,集群中所有的节点配置一致即可
virtual_router_id 51
#---- 备用节点注意的地方---->优先级,谁的优先级高,主节点挂掉后谁就成为MASTER
priority 80
#主备之间同步检查的时间间隔,默认1s
advert_int 1
#认证授权的密码,防止非法节点的进入
authentication {
auth_type PASS
auth_pass 1111
}
#---- 备用节点注意的地方---->虚拟出的ip,集群中必须一致,主节点是多少备用节点就是多少
virtual_ipaddress {
192.168.2.16
}
}
4、双主热备
2个节点直接互为主备用
4.1 节点一
! Configuration File for keepalived
global_defs {
#路由id,当前节点在集群中唯一的标识,全局唯一
router_id keep_118
}
#当前计算机节点
vrrp_instance VI_1 {
#当前节点为 主节点MASTER(备用节点为:BACKUP)
state MASTER
#当前节点绑定的网卡
interface ens33
#保证主备节点一致,集群中所有的节点配置一致即可
virtual_router_id 51
#优先级,谁的优先级高,主节点挂掉后谁就成为MASTER
priority 100
#主备之间同步检查的时间间隔,默认1s
advert_int 1
#认证授权的密码,防止非法节点的进入
authentication {
auth_type PASS
auth_pass 1111
}
#虚拟出的ip
virtual_ipaddress {
192.168.2.16
}
}
vrrp_instance VI_2 {
state BACKUP
interface ens33
virtual_router_id 52
priority 70
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.2.10
}
}
4.1 节点二
global_defs {
#路由id,当前节点在集群中唯一的标识,全局唯一
router_id keep_119
}
#当前计算机节点
vrrp_instance VI_1 {
#---- 备用节点注意的地方----> 当前节点为 备用节点为BACKUP
state BACKUP
#当前节点绑定的网卡
interface ens33
#保证主备节点一致,集群中所有的节点配置一致即可
virtual_router_id 51
#---- 备用节点注意的地方---->优先级,谁的优先级高,主节点挂掉后谁就成为MASTER
priority 80
#主备之间同步检查的时间间隔,默认1s
advert_int 1
#认证授权的密码,防止非法节点的进入
authentication {
auth_type PASS
auth_pass 1111
}
#---- 备用节点注意的地方---->虚拟出的ip,集群中必须一致,主节点是多少备用节点就是多少
virtual_ipaddress {
192.168.2.16
}
}
#当前计算机节点
vrrp_instance VI_2 {
state MASTER
interface ens33
virtual_router_id 52
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.2.10
}
}
本文详细介绍了Keepalived的安装步骤、Nginx健康检测配置方法以及如何实现双机主备与双主热备的设置。通过具体实例,读者可以快速掌握Keepalived的基本配置与使用。
1800

被折叠的 条评论
为什么被折叠?



