CentOS 5.x中部署LVS-DR模式的步驟

來源:互聯網
上載者:User

LVS是Linux Virtual Server的簡寫,即Linux虛擬伺服器,是一個虛擬伺服器叢集系統。

在下面的案例中,我們用了3台主機,IP地址分別為:

192.168.1.100
192.168.1.101
192.168.1.102

其中,192.168.1.100將安裝LVS做為負載平衡器來分發請求,另外2台做為真實提供服務的主機,以DR模式進行部署。

首先,我們應先在192.168.1.101和192.168.1.102上部署好Apache或是Nginx,還有PHP,這裡就不詳細說明了,可以參考本站的《Nginx + PHP(FastCGI)安裝配置筆記》(http://www.sunbloger.com/article/242.html)。

為了便於測試,我們在192.168.1.101上放置一個test.php,代碼如下:

PHP

<?php
echo '101';
?>

並在192.168.1.102上也放置一個同名檔案test.php,代碼如下:


<?php
echo '102';
?>
分別通過瀏覽器訪問http://192.168.1.101:80/test.php和http://192.168.1.102:80/test.php,正常的話會分別顯示101和102。

接下來,我們分別在192.168.1.101和192.168.1.102上添加用於LVS的指令碼,我們可以將指令碼添加到/etc/rc.d/init.d下,作為系統服務隨Linux一起啟動,方法如下:

vi /etc/rc.d/init.d/lvs-rs //建立名為lvs-rs的指令碼
chmod +x /etc/rc.d/init.d/lvs-rs //添加執行許可權
chkconfig --add lvs-rs //加入到系統服務中

lvs-dr指令碼代碼如下:


#!/bin/bash
# chkconfig: 35 90 10
# description: LVS of RealServer

VIP=192.168.1.100

. /etc/init.d/functions

case "$1" in
start)
    ifconfig lo:0 $VIP netmask 255.255.255.255
    /sbin/route add -host $VIP dev lo:0
    echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
    echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
    echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
    echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
    sysctl -p >/dev/null 2>&1
    echo "LVS of RealServer Start."
    ;;
stop)
    ifconfig lo:0 down
    route del $VIP >/dev/null 2>&1
    echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
    echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
    echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
    echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
    echo "LVS of RealServer Stoped."
    ;;
*)
    echo "Usage: $0 {start|stop}"
    exit 1
esac
exit 0
 

接下來,我們開始為192.168.1.100安裝LVS。

yum install ipvsadm

在CentOS下推薦採用yum安裝,可以避免核心版本對LVS的影響。

ipvsadm安裝完畢後,我們為192.168.1.100添加一個名為lvs-ds的服務啟停指令碼,代碼如下:

#!/bin/bash
# chkconfig: 35 90 10
# description: LVS of DirectorServer
 
VIP=192.168.1.100
RIP1=192.168.1.101
RIP2=192.168.1.102
 
. /etc/init.d/functions
 
case "$1" in
start)
    /sbin/ipvsadm -A -t $VIP:80 -s wlc
    /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g -w 1
    /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g -w 1
    touch /var/lock/subsys/ipvsadm >/dev/null 2>&1
    echo "LVS of DirectorServer start."
    ;;
stop)
    /sbin/ipvsadm -C
    rm -rf /var/lock/subsys/ipvsadm >/dev/null 2>&1
    echo "LVS of DirectorServer stoped."
    ;;
status)
    if [ ! -e /var/lock/subsys/ipvsadm ];then
        echo "LVS of DirectorServer stoped."
        exit 1
    else
        echo "LVS of DirectorServer OK."
    fi
    ;;
*)
   echo "Usage: $0 {start|stop|status}"
   exit 1
esac
   exit 0

將lvs-ds添加到系統服務中:

vi /etc/rc.d/init.d/lvs-ds //建立名為lvs-rs的指令碼
chmod +x /etc/rc.d/init.d/lvs-ds //添加執行許可權
chkconfig --add lvs-ds //加入到系統服務中

至此,3台主機部署完畢,開始測試

首先在192.168.1.101和192.168.1.102上分別啟動lvs-rs

service lvs-rs start

然後在192.168.1.100上啟動lvs-ds

service lvs-ds start

通過http://192.168.1.100:80/test.php來測試LVS工作是否正常,反覆重新整理頁面會看到隨機顯示101或102就代碼部署成功了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.