LVS+keepalived+httpd高可用集羣

Centos7 LVS+keepalived+httpd高可用集羣

環境:
主keepalived服務器:192.168.80.100
從keepalived服務器: 192.168.80.101

Web服務器:192.168.80.102
192.168.80.103

windows操作系統 :192.168.80.20

加載LVS內核模塊,並安裝

modprobe ip_vs ---加載ip_vs模塊

yum install ipvsadm -y ---安裝 ipvsadm

源碼安裝keepalived:

安裝插件和編譯軟件。
yum -y install gcc gcc-c++ make popt-devel kernel-devel openssl-devel

安裝上傳軟件,把軟件包從windows系統上傳到Centos上去。
yum install lrz* -y

LVS+keepalived+httpd高可用集羣

把軟件包解壓到 /opt,編譯並安裝

tar xf keepalived-1.4.2.tar.gz  -C  /opt      ---解壓軟件包到/opt 
cd /opt/keepalived-1.4.2/   ---切換到解壓目錄裏
./configure --prefix=/     
make && make install    ----編譯並且安裝
cp keepalived/etc/init.d/keepalived /etc/init.d/   ---加入系統管理服務

在主服務器上修改配置文件
vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
   router_id LVS_01            //本服務器的名稱
}
vrrp_instance VI_1 {            //定義VRRP熱備實例
    state MASTER             //熱備狀態,MASTER表示主服務器,BACKUP表示從服務器
    interface ens32            //承載VIP地址的物理接口
    virtual_router_id 51        //虛擬路由器的ID號,每個熱備組保持一致
    priority 110               //優先級,數值越大優先級越高
    advert_int 1               //通告間隔秒數(心跳頻率)
    authentication {            //熱備認證信息,每個熱備組保持一致
        auth_type PASS        //認證類型
        auth_pass 6666        //密碼字符串
    }
    virtual_ipaddress {          //指定漂移地址(VIP),可以有多個
        192.168.80.188
    }
}
virtual_server 192.168.80.188 80 {      //虛擬服務器地址(VIP)、端口
        delay_loop 6               //健康檢查的間隔時間(秒)
        lb_algo rr                  //輪詢(rr)調度算法
        lb_kind DR                 //直接路由(DR)羣集工作模式
        persistence_timeout 60       //連接保持時間(秒)
        protocol TCP                //應用服務器採用的是TCP協議
real_server 192.168.80.102 80 {         //第一個Web服務器節點的地址、端口
        weight 1                   //節點的權重
        TCP_CHECK {                //健康檢查方式
        connect_port 80             //檢查的目標端口
        connect_timeout 3           //連接超時(秒)
        nb_get_retry 3              //重試次數
        delay_before_retry 3          //重試間隔
        }
}
real_server 192.168.80.103 80 {           //第二個Web服務器節點的地址、端口
        weight 1
        TCP_CHECK {
             connect_port 80
             connect_timeout 3
             nb_get_retry 3
             delay_before_retry 3
     }
  }
}

service keepalived start ---啓動 keepalived

ip addr show dev ens32 ---查看ens32地址
LVS+keepalived+httpd高可用集羣

ipvsadm –Ln //查看LVS虛擬服務器


配置從keepalived服務器:
加載LVS內核模塊,並安裝

modprobe ip_vs ---加載ip_vs模塊

yum install ipvsadm -y ---安裝 ipvsadm

源碼安裝keepalived:

安裝插件和編譯軟件。
yum -y install gcc gcc-c++ make popt-devel kernel-devel openssl-devel

安裝上傳軟件,把軟件包從windows系統上傳到Centos上去。
yum install lrz* -y

LVS+keepalived+httpd高可用集羣

把軟件包解壓到 /opt,編譯並安裝

tar xf keepalived-1.4.2.tar.gz  -C  /opt      ---解壓軟件包到/opt 
cd /opt/keepalived-1.4.2/   ---切換到解壓目錄裏
./configure --prefix=/     
make && make install    ----編譯並且安裝
cp keepalived/etc/init.d/keepalived /etc/init.d/   ---加入系統管理服務

vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
   router_id LVS_02
}
vrrp_instance VI_1 {
    state BACKUP
    interface ens32
    virtual_router_id 51
    priority 105
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 6666
    }
    virtual_ipaddress {
        192.168.80.188
    }
}
virtual_server 192.168.80.188 80 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        persistence_timeout 60
        protocol TCP
real_server 192.168.80.102 80 {
        weight 1
        TCP_CHECK {
        connect_port 80
        connect_timeout 3
        nb_get_retry 3
        delay_before_retry 3
        }
}
real_server 192.168.80.103 80 {
        weight 1
        TCP_CHECK {
             connect_port 80
             connect_timeout 3
             nb_get_retry 3
             delay_before_retry 3
     }
  }
}
service keepalived start  ---啓動 keepalived
ipvsadm –Ln    ---//查看LVS虛擬服務器

LVS+keepalived+httpd高可用集羣


配置web節點服務器
第一臺web節點:
yum install -y httpd ---安裝httpd

vi /etc/httpd/conf/httpd.conf ---修改主配置文件

ServerName www.example.com:80 --- 查到此內容,並把前面的註釋符合刪除

cd /var/www/html/ ---切換到網頁根目錄

echo "<h1>SERVER AA</h1>" > index.html ---把SERVER AA寫入到index.html,同於創建一個index.html

service httpd start ---啓動http服務

vi web.sh   ---創建一個shell腳本,添加以下內容

#!/bin/bash
#haha
ifconfig lo:0 192.168.80.188 broadcast 192.168.80.188 netmask 255.255.255.255 up
route add -host 192.168.80.188 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

sh web.sh ---執行腳本

ifconfig ---查看網卡信息
LVS+keepalived+httpd高可用集羣

第二臺web服務器:
yum install -y httpd ---安裝httpd

vi /etc/httpd/conf/httpd.conf ---修改主配置文件

ServerName www.example.com:80 --- 查到此內容,並把前面的註釋符合刪除

cd /var/www/html/ ---切換到網頁根目錄

echo "<h1>SERVER AA</h1>" > index.html ---把SERVER AA寫入到index.html,同於創建一個index.html

service httpd start   ---啓動http服務

vi web.sh   ---創建一個shell腳本,添加以下內容
#!/bin/bash
#haha
ifconfig lo:0 192.168.80.188 broadcast 192.168.80.188 netmask 255.255.255.255 up
route add -host 192.168.80.188 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

sh web.sh ---執行腳本

ifconfig ---查看網卡信息

LVS+keepalived+httpd高可用集羣


測試LVS+Keepalived高可用羣集
在客戶端的瀏覽器中,能夠通過LVS+Keepalived羣集的漂移地址(192.168.80.100)正常訪問web頁面內容,則驗證羣集構建成功。

  1. 驗證兩臺Web服務器輪詢工作
    windows 192.168.80.188

    LVS+keepalived+httpd高可用集羣

  2. 模擬主調度器故障,驗證結果
    systemctl stop keepalived
    //主調度器keepalived停止工作
    LVS+keepalived+httpd高可用集羣
    LVS+keepalived+httpd高可用集羣
    3、模擬Web服務器bb故障
    service httpd stop ---停止web服務
    LVS+keepalived+httpd高可用集羣

LVS+Keepalived+httpd已成功搭建並測試完成

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章