Linux環境下實現keepalive支持的LVS高可用性和NGINX的單主模型雙主模型高可用

實驗:實現高可用的LVS-DR模型nginx

 一、準備兩臺RS服務器後端

image.png

二、將兩臺lVS安裝httpd或nginx,用來作sorry server服務器

image.png

三、定義RS服務器網絡

在後端服務器RS1寫配置腳本併發

image.png

執行腳本後,ifconfigide

image.png

以後腳本傳給RS2,執行此腳本,一樣存在lo:0 10.0.56.10高併發

四、LVS服務器安裝ipvsadm,以後添加虛擬網絡oop

ifconfig ens33:0 10.0.56.10 netmask 255.255.255.255 broadcast 10.0.56.10 up測試

image.png

五、配置添加RS服務器被lvs調度url

image.png

六、測試,注意測試機加上到10.0.56.0/24的路由,此時基本的已完成

image.png

七、LVS1下線,配置LVS2

LVS1:ifconfig ens33:0 down

LVS2:

ifconfig ens33:0 10.0.56.10 netmask 255.255.255.255 broadcast 10.0.56.10 up

ipvsadm -A -t 10.0.56.10:80 -s rr

ipvsadm -a -t 10.0.56.10:80 -r 192.168.239.72 -g

ipvsadm -a -t 10.0.56.10:80 -r 192.168.239.73 -g

image.png

以後結果會等一個間隔時間後纔會出現

image.png

八、配置keepalived

清空ipvsadm的規則,ipvsadm -C

兩個LVS主機上均有在/etc/keepalived/keepalived.conf:

virtual_ipaddress {

        10.0.56.10/24 dev ens33 label ens33:1

    }

virtual_server 10.0.56.10 80 {

        delay_loop 2

        lb_algo wrr

        lb_kind DR

        protocol TCP

        sorry_server 127.0.0.1 80

        real_server 192.168.239.72 80 {

                weight 1

                HTTP_GET {

                        url {

                        path /

                        status_code 200

                }

                connect_timeout 1

                nb_get_retry 3

                delay_before_retry 1

                }

        }

        real_server 192.168.239.73 80 {

                weight 1

                HTTP_GET {

                url {

                        path /

                status_code 200

        }

                connect_timeout 1

                nb_get_retry 3

                delay_before_retry 1

                }

        }

}

以後兩臺LVS所有中止keepalived

先啓動LVS1的keepalived

image.png

測試1(若是光標閃爍,查看LVS服務器的iptables -vnL中是否有個DROP,由此規則緣由是keepalive.conf中有vrrp_strict)

image.png

測試2

image.png

測試3

image.png

測試4

image.png

暫停片刻後恢復調度

附:整個LVS的keepalive.conf

global_defs {

   notification_email {

        root@localhost

   }

   notification_email_from keepalived@localhost

   smtp_server 127.0.0.1

   smtp_connect_timeout 30

   router_id lvs1

   vrrp_skip_check_adv_addr

   vrrp_strict

   vrrp_garp_interval 0

   vrrp_gna_interval 0

   vrrp_mcast_group4 224.0.156.18

}

 

vrrp_instance VI_1 {

    state MASTER

    interface ens33

    virtual_router_id 55

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass passwd

    }

    virtual_ipaddress {

        10.0.56.10/24 dev ens33 label ens33:1

    }

        notify_master "/etc/keepalived/notify.sh master"

        notify_backup "/etc/keepalived/notify.sh backup"

        notify_fault "/etc/keepalived/notify.sh fault"

}

virtual_server 10.0.56.10 80 {

        delay_loop 2

        lb_algo wrr

        lb_kind DR

        protocol TCP

   

sorry_server 127.0.0.1 80  

 

real_server 192.168.239.72 80 {

                weight 1

                HTTP_GET {

                        url {

                        path /

                        status_code 200

                }

                connect_timeout 1

                nb_get_retry 3

                delay_before_retry 1

                }

        }

 

        real_server 192.168.239.73 80 {

                weight 1

                HTTP_GET {

                url {

                        path /

                status_code 200

        }

                connect_timeout 1

                nb_get_retry 3

                delay_before_retry 1

                }

        }

}

實驗:keepalive實現高併發nginx代理nginx服務器(單主模型)

一、簡易拓撲圖

image.png

二、在兩臺keepalive服務器中更改配置/etc/keepalive/keepalive.conf

image.png

作一步測試一步,說明兩臺keepalive的nginx配置正確

image.png

二、/etc/keepalive/keepalive.conf的配置

image.png

systemclt restart keepalived

image.png

三、測試1

image.png

測試2

image.png

此時依舊成功

image.png

測試3

image.png

加入nginx檢測腳本,判斷nginx進程是否存在

image.png

測試4

image.png

image.png

實驗:keepalive實現高併發nginx代理nginx服務器(雙主模型)

一、簡易拓撲圖

image.png

二、配置ka1

image.png

配置ka2

image.png

配置保存後重啓keepalive

image.png

三、配置RS服務器

四、配置ka1的nginx.conf

image.png

image.png

配置ka 2的nginx,和ka 1的基本一致,最好兩個default的server_name和proxy_pass換到各自對應的RS主機位置

image.png

五、客戶機配置/etc/hosts解析

image.png

六、測試

image.png

測試結果

image.png

測試結果

image.png

相關文章
相關標籤/搜索