Nginx负责均衡服务器的双机高可用

目前公司架构:

负载均衡A :Nginx+resin 。PS:此Nginx负载均衡了A B C

负载均衡B :resin

负载均衡C :resin

 

前段时间出现一个情况:当负载均衡A,出现宕机,导致上面的Nginx服务停掉,尽而导致 负载A B C 都不能正常服务。

 

因此,我们需要两台以上的Nginx负载均衡服务器,实现故障转移与高可用

 

明天将按照张宴上第6.5章节,Nginx负责均衡服务器的双机高可用,来实现。

 

 

本地环境:

虚拟机下2个linux环境,IP如下:

192.168.152.129  负载A

192.168.152.131  负载B

 

6月21日:环境情况

负载A :nginx +resin

负载B :null

 

6月22日:

早上,搭好环境

负载A :nginx +resin   其中 nginx配置了负责A和B

负载B :resin

下午:把书中所写双机高可用的实现方式看明白。

 

6月23日:

下面2个脚本运行在负载B上,用于随时接管IP133

脚本nginx-131.sh:用于接管IP133

#!/bin/sh

function_bind_133()
{
        /sbin/ifconfig eth0:1 192.168.152.133 broadcast 192.168.152.255 netmask 255.255.255.0 up
        /sbin/route add -host 192.168.152.133 dev eth0:1
        /sbin/arping -I eth0 -c 3 -s 192.168.152.133 192.168.152.1
}

function_start_nginx(){
        /etc/init.d/nginx start
}

while true
do
        echo "开始检测133"
        httpcode_rip1=`/usr/bin/curl -o /dev/null -s -w %{http_code} http://192.168.152.133`
        #httpcode_133=‘/usr/bin/curl -o /dev/null -s -w %{http_code} http://192.168.152.133‘
        echo "检测结果:$httpcode_133"

        if [ x$httpcode_rip1 == "x000" ];
        then
                echo "开始接管:133"

                function_bind_133
                function_start_nginx

                echo "接管结束"
        fi

        sleep 5
done

 


脚本close_133.sh用于 取消对IP133的接管

#!/bin/sh


#取消对IP133的接管
/sbin/ifconfig eth0:1 192.168.152.133 broadcast 192.168.152.255 netmask 255.255.255.0 down

#关闭nginx
/etc/init.d/nginx stop

echo "取消接管成功!"

 

PS:今天在编写nginx-131.sh脚本时,因为标点的问题,出现了很多莫名其妙的错误。以后涉及到`要十分小心。用Esc下面那个`。

你可能感兴趣的:(c,虚拟机,linux,nginx,脚本)