脚本
https://gitcode.net/zengliguang/nginx_keepalived.git
系统拓扑

安装keepalived
主备服务器上都需要安装
在线安装
yum install -y keepalived
离线安装
主服务器脚本
# 设置虚拟机ip、网卡命令、hostname(后期自动获取)
master_ipaddress=192.168.11.54
backup_ipaddress=192.168.11.53
virtual_ipaddress=192.168.11.56
hostname=localhost.localdomain
interface=ens33
#关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
#永久关闭
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
#创建文件夹
mkdir /home/tuners -p
# 拷贝到tuners路径下
\cp -r ./*keepalived* /home/tuners
echo "拷贝完成"
# 离线安装
cd /home/tuners/keepalived
rpm -Uvh --force --nodeps *.rpm
# 生成主服务器配置文件
cat > /etc/keepalived/keepalived.conf << EOF
global_defs {
router_id $hostname # 访问到主机,本机的hostname,需要修改
}
vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh" # 检测脚本位置
interval 2 #(检测脚本执行的间隔)
weight 2 # 权重
}
vrrp_instance VI_1 {
state MASTER # 备份服务器上将 MASTER 改为 BACKUP,需要修改
interface $interface # 网卡名字,使用ifconfig查看,需要修改
virtual_router_id 51 # 主、备机的 virtual_router_id 不能相同
priority 100 # 主、备机取不同的优先级,主机值较大,备份机值较小,一般主100从90
advert_int 1 # 每隔1秒发送心跳
authentication {
auth_type PASS
auth_pass 1111
}
unicast_src_ip $master_ipaddress ##自己ip
unicast_peer { #单模式
$backup_ipaddress #另一个ip
}
virtual_ipaddress {
$virtual_ipaddress #// VRRP H 虚拟地址,也可以绑定多个虚拟ip,需要修改
}
}
EOF
# 生成备服务器配置文件
# cat > /etc/keepalived/keepalived.conf << EOF
# global_defs {
# router_id localhost.localdomain # 访问到主机,本机的hostname,需要修改
# }
# vrrp_script chk_http_port {
# script "/usr/local/src/nginx_check.sh" # 检测脚本位置
# interval 2 #(检测脚本执行的间隔)
# weight 2 # 权重
# }
# vrrp_instance VI_1 {
# state BACKUP # 备份服务器上将 MASTER 改为 BACKUP,需要修改
# interface ens33 # 网卡名字,使用ifconfig查看,需要修改
# virtual_router_id 59 # 主、备机的 virtual_router_id 不能相同
# priority 90 # 主、备机取不同的优先级,主机值较大,备份机值较小,

本文详细介绍了如何在Linux系统中安装Keepalived,配置主备服务器之间的网络虚拟IP以及监控脚本,确保在Nginx服务故障时进行自动切换。
475

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



