
Master 节点配置文件 (keepalived.conf)
! Configuration File for keepalived
global_defs {
router_id MASTER_NODE
}
vrrp_script chk_nginx {
script "/etc/keepalived/check_nginx.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
state MASTER
interface eth0 # 修改为您的网络接口名
virtual_router_id 51
priority 100 # Master 优先级通常更高
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100/24 # 虚拟 IP 地址
}
track_script {
chk_nginx
}
notify_master "/etc/keepalived/notify_master.sh"
notify_backup "/etc/keepalived/notify_backup.sh"
notify_fault "/etc/keepalived/notify_fault.sh"
}
Backup 节点配置文件 (keepalived.conf)
! Configuration File for keepalived
global_defs {
router_id BACKUP_NODE
}
vrrp_script chk_nginx {
script "/etc/keepalived/check_nginx.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
state BACKUP
interface eth0 # 修改为您的网络接口名
virtual_router_id 51
priority 90 # Backup 优先级通常更低
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100/24 # 虚拟 IP 地址
}
track_script {
chk_nginx
}
notify_master "/etc/keepalived/notify_master.sh"
notify_backup "/etc/keepalived/notify_backup.sh"
notify_fault "/etc/keepalived/notify_fault.sh"
}
在上面的配置中,我们定义了一个名为 VI_1 的 VRRP 实例。Master 节点具有更高的优先级(100),而 Backup 节点具有较低的优先级(90)。当 Master 节点出现故障时,Backup 节点将接管虚拟 IP 地址。
vrrp_script 部分定义了一个检查脚本 /etc/keepalived/check_nginx.sh,用于检查 Nginx 服务是否正常运行。如果 Nginx 服务停止运行,Keepalived 将降低节点的优先级,从而触发主备切换。
notify_master、notify_backup 和 notify_fault 分别定义了当节点成为主节点、备份节点或出现故障时执行的脚本。您可以根据需要创建这些脚本,以执行特定的操作。
请注意,您需要确保 check_nginx.sh 和通知脚本在 /etc/keepalived/ 目录下存在并具有可执行权限。此外,您还需要根据实际的网络接口名和虚拟 IP 地址进行相应的修改。
最后,不要忘记在启动 Keepalived 服务之前,使用 systemctl enable keepalived 命令将其设置为开机自启,并使用 systemctl start keepalived 命令启动服务。