溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

針對Web服務(wù)器容災(zāi)的自動切換方案測試

發(fā)布時間:2020-07-02 07:52:12 來源:網(wǎng)絡(luò) 閱讀:1458 作者:2012hjtwyf 欄目:建站服務(wù)器



我們網(wǎng)站的XX服務(wù)隨著業(yè)務(wù)的增長我們需要配置跨IDC容災(zāi)情況,為了處理突發(fā)事件,避免影響網(wǎng)站的正常訪問

自己在網(wǎng)上看了很多處理方法,結(jié)合自己的實際情況,我自己也在在局域網(wǎng)的測試服務(wù)器上演練了一把。

測試結(jié)果表現(xiàn)良好,現(xiàn)在把我在局域網(wǎng)中的部署整理如下:

思路:
當(dāng)服務(wù)器A 發(fā)生故障,服務(wù)器B可以迅速接管服務(wù)器A的任務(wù),不影響用戶的正常訪問。
當(dāng)服務(wù)器A 故障恢復(fù),服務(wù)器A可以馬上接管服務(wù)器B的任務(wù),服務(wù)器B恢復(fù)備機(jī)狀態(tài)。

做法:
兩臺服務(wù)器上配置一個虛擬IP地址,主服務(wù)器先綁定虛擬ip地址,當(dāng)發(fā)生故障時,備機(jī)自動接管虛擬ip地址

刷新網(wǎng)關(guān)路由地址。當(dāng)主機(jī)恢復(fù)后,備機(jī)釋放虛擬ip地址,主機(jī)再次主動接管虛擬ip地址,刷新網(wǎng)關(guān)路由地址

結(jié)構(gòu)圖:

針對Web服務(wù)器容災(zāi)的自動切換方案測試

主服務(wù)器:ip 192.168.190.199
備服務(wù)器: ip 192.168.190.208

vip:192.168.190.88
gateWay=192.168.190.254
netMask=255.255.255.0
bcast=192.168.190.255

步驟:

1、配置虛擬ip:192.168.190.88 到 www.test.com 綁定虛擬ip

/sbin/ifconfig eth0:1 192.168.190.88 broadcast 192.168.190.255    

netmask 255.255.255.0  up  

/sbin/route add -host 192.168.190.88 dev eth0:1 

2、刷新網(wǎng)關(guān)路由

/sbin/arping -i eth0 -s 192.168.190.88  192.168.190.254 > /dev/null 2>&1  


3、當(dāng)發(fā)生故障時,主機(jī)192.168.190.199 ,釋放虛擬ip192.168.190.88,備機(jī)192.168.190.208接管 虛擬ip192.168.190.88

/sbin/ifconfig eth0:1 192.168.190.88  broadcast  192.168.190.255   netmask 255.255.255.0 down          

/sbin/arping -i eth0 -s 192.168.190.88  192.168.190.254 > /dev/null 2>&1  


4、這時 www.test.com 解析到了備機(jī)服務(wù)器192.168.190.208

5、重啟備機(jī)web服務(wù)器

6、若主機(jī)192.168.190.199服務(wù)恢復(fù)正常,備機(jī)192.168.190.208

釋放虛擬IP,主機(jī),綁定虛擬IP 192.168.190.88 備機(jī)釋放虛擬ip:


/sbin/ifconfig eth0:1 192.168.190.88  broadcast  192.168.190.255   netmask 255.255.255.0 down          

/sbin/arping -i eth0 -s 192.168.190.88  192.168.190.254 > /dev/null 2>&1  


7、重啟啟動主備機(jī)web服務(wù)

主機(jī)192.168.190.199
autoSwitchMain.sh切換腳本


    #!/bin/sh  
    #############################################################  
    #desc:服務(wù)器宕機(jī)自動切換服務(wù)  
    #author:gaozhonghui  
    #mail:toptreegzh@163.com  
    #date:20121101  
    #############################################################  
      
    vip=192.168.190.88  
    gateWay=192.168.190.254  
    netMask=255.255.255.0  
    bcast=192.168.190.255  
      
    function_bind_vip1(){  
    /sbin/ifconfig eth0:1 ${vip} broadcast ${bcast}  netmask ${netMask} up  
    /sbin/route add -host ${vip} dev eth0:1  
    }  
      
    function_remove_vip1(){  
    /sbin/ifconfig eth0:1 ${vip} broadcast ${bcast}  netmask ${netMask down  
    }  
      
    function_vip_arping1(){  
    /sbin/arping -i eth0 -s ${vip} ${gateWay} > /dev/null 2>&1  
    }  
      
    function_restart_nginx(){  
    /web/webserver/nginx/sbin/nginx -s reload  
    }  
      
    bind_time_vip="N"  
      
    while true  
    do  
        httpCode_rip1=`/usr/bin/curl -o /dev/null -s -w %{http_code} http://192.168.190.199`  
          
        if [ x${httpCode_rip1} == "x200" ];  
        then  
            if [ ${bind_time_vip} == "N" ];  
            then  
                function_bind_vip1  
                function_vip_arping1  
                bind_time_vip="Y"  
            fi  
            function_vip_arping1  
        else  
            if [ ${bind_time_vip} == "Y" ]  
            then  
                function_remove_vip1  
                bind_time_vip="N"  
            fi  
        fi  
        sleep 10  
    done 


然后linux 啟動守候進(jìn)程
/usr/bin/nohup /bin/sh  /home/Gzh/shell/ autoSwitchMain.sh   2>&1 > /dev/null &

備機(jī)192.168.190.208:
autoSwitchSlave.sh


    #!/bin/sh  
    #############################################################  
    #desc:服務(wù)器宕機(jī)自動切換服務(wù)  
    #author:gaozhonghui  
    #mail:toptreegzh@163.com  
    #date:20121101  
    #############################################################  
      
    vip=192.168.190.88  
    gateWay=192.168.190.254  
    netMask=255.255.255.0  
    bcast=192.168.190.255  
      
    function_bind_vip1(){  
    /sbin/ifconfig eth0:1 ${vip} broadcast ${bcast}  netmask ${netMask} up  
    /sbin/route add -host ${vip} dev eth0:1  
    }  
      
    function_remove_vip1(){  
    /sbin/ifconfig eth0:1 ${vip} broadcast ${bcast}  netmask ${netMask} down  
    }  
      
    function_vip_arping1(){  
    /sbin/arping -i eth0 -s ${vip} ${gateWay} > /dev/null 2>&1  
    }  
      
    function_restart_nginx(){  
    /web/webserver/nginx/sbin/nginx -s reload  
    }  
      
    bind_time_vip="N"  
      
    while true  
    do  
            httpCode_rip1=`/usr/bin/curl -o /dev/null -s -w %{http_code} http://192.168.190.199`  
      
            if [ x${httpCode_rip1} == "x200" ];  
            then  
                    if [ ${bind_time_vip} == "Y" ];  
                    then  
                            function_remove_vip1  
                            bind_time_vip="N"  
                    fi  
                    function_vip_arping1  
            else  
                    if [ ${bind_time_vip} == "N" ]  
                    then  
                            function_bind_vip1  
                            function_vip_arping1  
                            bind_time_vip="Y"  
                    fi  
            fi  
      
            sleep 10  
    done 


啟動守候進(jìn)程
/usr/bin/nohup /bin/sh  /home/Gzh/shell/autoSwitchSlave.sh   2>&1 > /dev/null &


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI