利用KeepAlived配置nginx主备
利用KeepAlived配置nginx主备
1.安装keepalived
yum install -y keepalived #直接yum安装默认yes
systemctl status keepalived #查看是否有安装成功
看到提示以下信息表示成功
keepalived.service - LVS and VRRP High Availability Monitor
Loaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor preset: disab
Active: inactive (dead)
2.编辑keepalived.conf配置文件
首先查看本机网卡名称
ip -brief address show
注意看你用的是哪个网卡,记住这个网卡名称,我的是ens192

然后打开keepalived.conf配置
vim /etc/keepalived/keepalived.conf
主服务器配置如下:
vrrp_instance VI_1 { # instance名称必须一致
state MASTER
interface ens192 # 这里写你的网卡名称
virtual_router_id 51 #虚拟路由标记必须一致
priority 255 # 优先级
advert_int 1 #多少秒检查一次心跳 1表示1秒
authentication { #安全设置
auth_type PASS
auth_pass 12345
}
virtual_ipaddress {
192.168.99.154/24 #虚拟的IP必须都可访问
}
}
备用服务器配置如下:
vrrp_instance VI_1 {
state BACKUP
interface ens192
virtual_router_id 51
priority 254
advert_int 1
authentication {
auth_type PASS
auth_pass 12345
}
virtual_ipaddress {
192.168.99.154/24
}
}
sudo firewall-cmd --zone=public --add-port=112/tcp --permanent #打开112的keepalived端口.
firewall-cmd --reload #重启防火墙
cd /etc/keepalived/ #编辑检测NGINX是否存活脚本
touch check_nginx.sh #新建文件
chmod 755 check_nginx.sh #授权
vim check_nginx.sh #编辑
#!/bin/bash
COUNT=$(ps -C nginx --no-header |wc -l)
echo $COUNT
#判断Nginx 是否都挂掉了
if [ $COUNT -eq 0 ]
then
#nginx安装地址,如果挂掉了,就启动nginx(nginx命令的地址要写对)
/usr/local/nginx/sbin/nginx
echo "重启nginx"
#等5秒钟后,再次查看是否 启动成功
sleep 5
#如果nginx没有启动起来,就直接干掉keepalived
COUNT=$(ps -C nginx --no-header |wc -l)
if [ $COUNT -eq 0 ]
then
echo "干掉keepalived",使得从服务器能够接管服务。
#如果killall命令不能使用,就需要安装psmisc工具了
#yum install -y psmisc
killall keepalived
fi
fi

浙公网安备 33010602011771号