SHELL脚本实现网站高可用

实现网站高可用的方法有很多,如:Keepalived,LVS等等,除此之外,通过SHELL脚本也可以实现网站高可用。以下介绍通过脚本来实现网站高可用简单方法:
原理:
使用虚拟IP和服务器子IP来实现,虚拟IP用VIP表示。假如两台服务器,一主,一备,默认主服务器启子IP,即VIP。网站访问是VIP指向主服务器,当主服务器挂了时,备服务器启用子IP,即备用服务器的VIP,此时,网站访问VIP指向了备服务器。如下图:
在这里插入图片描述
启用子IP方法:

  • 把使用的网卡cp一份命名为:旧网卡名:1,做为VIP网卡
cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33:1

修改VIP网卡,IP地址为VIP地址

vim /etc/sysconfig/network-scripts/ifcfg-ens33:1
# DEVICE修改VIP地址名称,IPADDR修改为VIP地址
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
NAME=ens33:1
DEVICE=ens33:1
ONBOOT=yes
IPADDR=192.168.68.125
NETMASK=255.255.255.0
#启用VIP地址
ifup ens33:1

在这里插入图片描述
为了实现网站主服务器宕机后,网站备用服务器VIP自动启用,这就需要脚本来实现了,把脚本在主,备服务器上都运行,当脚本检测到服务器nginx服务挂时,自动启用子IP

#auto check nginx WEB VIP
#by author ACAI
####################################
while true
do
        CHECK_NGINX=$(netstat -ntlp|grep nginx|grep -aicwE80)
        cd /etc/sysconfig/network-scripts/
        if [ $CHECK_NGINX -ne 0 ];then
                ping -c2 192.168.68.125 >/dev/null
                if [ $? -ne 0 ];then
                cat>ifcfg-ens33:1<<-EOF
                PROXY_METHOD=none
                BROWSER_ONLY=no
                BOOTPROTO=none
                DEFROUTE=yes
                NAME=ens33:1
                DEVICE=ens33:1
                ONBOOT=yes
                IPADDR=192.168.68.125
                NETMASK=255.255.255.0
                EOF
                ifup ens33:1
                date
                fi
        else
                ifdown ens33:1
                rm -rf ifcfg-ens33:1
        fi
        sleep 5
done
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

阿蔡BLOG

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值