双机主备,能够保证Nginx节点的高可用,但也带来资源浪费的情况。BACKUP节点在MASTER节点正常时处于空闲状态。双机热备用来解决这个问题,如下原理图。
171和172两台机器互为主备,分别是自身的MASTER.
配置核心配置文件 keepalived.conf,130和131两台机器keepalived节点配置相反。
global_defs {
# 路由id, 当前安装keepalived节点的主机标识符,保证全局唯一
router_id LVS_130
}
vrrp_instance VI_1 {
# 表示节点是MASTER,还是BACKUP
state MASTER
# 该实例绑定的网卡
interface ens33
# 虚拟ip
virtual_router_id 51
# 权重,主节点挂掉后,选举出优先级更高的节点作为主节点
priority 100
# 心跳间隔,主备节点之间同步检查时间间隔,默认1s
advert_int 1
# 认证权限密码,防止非法节点进入
authentication {
auth_type PASS
auth_pass 1111
}
# 设置虚拟ip,可以多个
virtual_ipaddress {
192.168.233.120
}
}
vrrp_instance VI_2 {
state BACKUP
interface ens33
virtual_router_id 52
priority 80
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.233.121
}
}
两个节点正常允许时,会分别携带一个虚拟IP。
当130机器的keepalived MASTER挂掉后,131作为BACKUP启动,请求会路由到131机器。此时131机器上会有两个虚拟IP。