Keepalived双机热备其实就是在主备的基础上,再虚拟一个IP,主备节点位置调换即可。主备如何配置及配置文件参数解析可以参考本人的上一篇文章:https://blog.csdn.net/qq_34871626/article/details/107774077
通过keepalived自动重启nginx脚本见:https://blog.csdn.net/qq_34871626/article/details/107826885
下面就直接列出双机热备的示例,不做过多赘述。
节点一:
! Configuration File for keepalived
global_defs {
router_id keep_103
}
#nginx自动重启
vrrp_script check_nginx_alive {
script "/etc/keepalived/check_nginx_alive_or_not.sh"
interval 2 #每隔2秒运行一次
weight 10 # 运行成功 权重加10
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.235.150
}
}
vrrp_instance VI_2 {
state MASTER
interface ens33
virtual_router_id 52
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
check_nginx_alive # 添加nginx脚本
}
virtual_ipaddress {
192.168.235.151
}
}
节点二:
! Configuration File for keepalived
global_defs {
router_id keep_101
}
#nginx自动重启
vrrp_script check_nginx_alive {
script "/etc/keepalived/check_nginx_alive_or_not.sh"
interval 2 #每隔2秒运行一次
weight 10 # 运行成功 权重加10
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
check_nginx_alive # 添加nginx脚本
}
virtual_ipaddress {
192.168.235.150
}
}
vrrp_instance VI_2 {
state BACKUP
interface ens33
virtual_router_id 52
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.235.151
}
}
分别重启两台的keepalived:
service keepalived restart
在分别查看ip信息,可以看到两个不同节点都绑定了各自的虚拟IP:
[root@localhost keepalived]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:72:96:26 brd ff:ff:ff:ff:ff:ff
inet 192.168.235.103/24 brd 192.168.235.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.235.151/32 scope global ens33
valid_lft forever preferred_lft forever
[root@localhost keepalived]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:b8:21:eb brd ff:ff:ff:ff:ff:ff
inet 192.168.235.101/24 brd 192.168.235.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet 192.168.235.150/32 scope global ens33
valid_lft forever preferred_lft forever
说明双机热备设置成功。