利用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

image

然后打开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


posted @ 2021-12-06 09:36  罗斯大人  阅读(164)  评论(0)    收藏  举报