Keepalived-在没有之前配置的Nginx高可用(不建议采纳)


前言

3)基于SHELL编程脚本一键实现Nginx高可用,主要编程思路如下:

两台Nginx WEB服务器,引入VIP地址1.188;
用户访问的域名跟192.168.1.188绑定(解析);
保障VIP1.188同一时刻只能在一台Nginx服务器上;
一台Nginx宕机,可以自动切换至另外一台Nginx提供服务。

auto_config_Nginx_vip_2_v1.sh

#!/bin/bash
#auto check nginx vip
ETH_NAME="ens33:0"
ETH_VIP="192.168.1.188"
ETH_MASK="255.255.255.0"
ETH_DIR="/etc/sysconfig/network-scripts"

function eth_config(){
cat>ifcfg-$ETH_NAME <<EOF
TYPE=Ethernet
BOOTPROTO=static
DEVICE=$ETH_NAME
ONBOOT=yes
IPADDR=$ETH_VIP
NETMASK=$ETH_MASK
EOF
}
while true
do
        CHECK_NUM=$(ps -ef|grep nginx|grep -v grep|grep -v check|wc -l)
        if [ $CHECK_NUM -ne 0 ];then
                ping -c 5 $ETH_VIP
                if [ $? -ne 0 ];then
                        cd $ETH_DIR
                        eth_config
                        ifup $ETH_NAME
                fi
        else
                ifdown $ETH_NAME
                rm -rf $ETH_DIR/ifcfg-$ETH_NAME
        fi
        sleep 5
done


        sleep 5                                                                                
done	

auto_config_Nginx_vip_2_v2.sh

#!/bin/bash
#auto change service VIP
##########################
ETH_NAME="ens33:1"
NGX_VIP="192.168.1.188"
NGX_MASK="255.255.255.0"
ETH_DR="/etc/sysconfig/network-scripts"
NGX_NUM=`ps -ef|grep nginx|grep -v grep|grep -v check|wc -l`

start(){
while sleep 4
do
        if [ $NGX_NUM -eq 0 ];then
                ifdown $ETH_NAME
                exit 0
        else
                ping -c 2 $NGX_VIP>/dev/null 2>&1
                if [ $? -ne 0 ];then
                        cat >$ETH_DIR/ifcfg-$ETH_NAME<<-EOF
                        TYPE="Ethernet"
                        BOOTPROTO="static"
                        DEVICE="$ETH_NAME"
                        IPADDR=$NGX_VIP
                        NETMASK=$NGX_MASK
                        ONBOOT="yes"
                        EOF
                        ifup $ETH_NAME
                fi
        fi
        date
done
}

stop(){
        ifdown $ETH_NAME
        rm -rf $ETH_DIR/ifcfg-$ETH_NAME
}

case $1 in
        start)
                start
        ;;
        stop)
                stop
        ;;
        *)
                echo -e "\033[32m-----------------\033[0m"
                echo -e "\033[32mUsage:/bin/sh $0 {start|stop|help}\033[0m"
                exit 1
        ;;
esac      

总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

低调的小哥哥

你的关注就是我为你服务的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值