实现keepalived双主热备
1.双热主备:给两台nginx配上虚拟IP,用户请求通过DNS轮询方式分发请求到不同的虚拟IP,不同的虚拟IP绑定不同的Nginx服务器,161虚拟IP和nginx的ip171绑定,172位备用机,162虚拟IP和172绑定,171位备用机,现在就是不存在主备关系了,每台都是主节点也是备用机
- 规则:以一个虚拟IP分组归为同一个路由
主节点配置:
global_defs {
# 路由id:当前安装keepalived的节点主机标识符,保证全局唯一
router_id keep_88
}
vrrp_instance VI_1 {
# 表示状态是MASTER主机还是备用机BACKUP
state MASTER
# 该实例绑定的网卡(可以使用 ip addr 执行查看)
interface enp0s3
# 虚拟路由Id,保证主备节点一致即可
virtual_router_id 51
# 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选
priority 100
# 主备之间同步检查时间间隔,单位秒
advert_int 1
# 认证权限密码,防止非法节点进入
authentication {
auth_type PASS
auth_pass 1111
}
# 虚拟出来的ip,可以有多个(vip)
virtual_ipaddress {
192.168.200.16
}
}
vrrp_instance VI_2 {
state BACKUP
interface enp0s3
virtual_router_id 52
priority 80
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.200.16
}
}
备用节点配置:
global_defs {
# 路由id:当前安装keepalived的节点主机标识符,保证全局唯一
router_id keep_89
}
vrrp_instance VI_1 {
# 表示状态是MASTER主机还是备用机BACKUP
state BACKUP
# 该实例绑定的网卡(可以使用 ip addr 执行查看)
interface enp0s3
# 虚拟路由Id,保证主备节点一致即可
virtual_router_id 51
# 权重,master权重一般高于backup,如果有多个,那就是选举,谁的权重高,谁就当选
priority 80
# 主备之间同步检查时间间隔,单位秒
advert_int 1
# 认证权限密码,防止非法节点进入
authentication {
auth_type PASS
auth_pass 1111
}
# 虚拟出来的ip,可以有多个(vip)
virtual_ipaddress {
192.168.200.16
}
}
vrrp_instance VI_2 {
state MASTER
interface enp0s3
virtual_router_id 52
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.200.17
}
}
2.重启两台服务器的Keepalived
systemctl restart keepalived