Linux集羣服務以及集羣服務的具體實現

集羣(Cluster):多個計算機組成,爲了解決某個問題的集合,一般是爲了提升系統的性能;
集羣分爲:負載均衡集羣(LB)、高可用集羣(HA)、高性能集羣(HP); ------------這裏只介紹LB和HA,以及HA中的keepalived前端

1、負載均衡集羣(LB Cluster):
基於硬件實現:、F5 Big_IP、Citrix Netscaler、A10公司的A10
基於軟件實現:lvs、httpd、nginx、haproxy、ats、perlbal(基於Perl語言)、pound、...
基於工做的網絡協議分層實現負載均衡:傳輸層(四層交換技術(OSI);lvs、nginx基於stream實現、haproxy基於TCP model實現)和應用層(七層交換技術;http/https、fastcgi、mysql協議)mysql

lvs:Linux Virtual Server(調度器接收用戶請求,而後將請求轉發給後臺real server來響應客戶端請求)
lvs的軟件組成:
ipvsadm/ipvs
ipvsadm:用戶空間中的命令行工具,管理集羣服務規則及後端real server的管理;
ipvs:工做於內核空間中的netfilter框架中的hook_input()鉤子上的一個框架;能夠接受來自ipvsadm的管理命令;ipvs能夠管理諸如:TCP、UDP、SCTP、AH、ESP、AH_ESP等協議,並能夠對此類協議的數據報文進行調度轉發;linux

lvs集羣服務中的經常使用術語
vs:Virtual Server
rs:Real Server(lvs中術語),Upstream Server(nginx中的語法術語),Backend Server
地址標識術語:
CIP:Client IP客戶端IP地址,即:請求發送方的IP地址,通常是公有地址;
VIP:Virtual IP,虛擬服務器的虛擬IP地址,客戶端訪問的目的地址;
DIP:Director IP,調度器IP地址,向後端的Real Server轉發客戶端請求時使用的IP地址;
RIP:Real Server IP,後端真實服務器的IP地址;nginx

lvs的調度算法(scheduler):
根據lvs在調度時是否考慮各RS的當前負載狀態,能夠將調度算法分爲兩類:靜態算法和動態算法
1.靜態算法:根據算法自己的特色進行調度;注重起點公平;
RR:RoundRobin,輪詢算法;
WRR:Weighted RR,帶有權重的輪詢算法;加權輪詢;
SH:Source Hashing,源地址哈希;未來自於同一個IP地址的請求始終發日後端第一次被挑選出來的RS,從而能夠實現會話粘性;
DH:Destination Hashing,目標地址哈希;將發往同一目標地址的請求,始終發送至後端第一次挑選出來的RS;通常用於正向代理服務器集羣的調度;
2.動態算法:根據每一個RS當前的負載狀態進行調度,注重結果公平; //後端的RS的負載狀態,一般使用Overhead表示,不一樣的算法中Overhead的計算公式不同;
1)LC:least connections,最小鏈接數;
鏈接狀態有兩種:一種是active connections(活動鏈接),另外一種是inactive connections(非活動鏈接)
Overhead計算公式:Overhead=active connections 256 + inactive connections
注意:第一次調度時,由於後端的RS上並無任何的active或inactive鏈接,因此按照配置順序自上而下進行調度分配;屬於輪詢開始;
2)WLC:Weighted LC,加權的最小鏈接算法;默認算法;
Overhead計算公式:Overhead=(active connections
256 + inactive connections)/weight
注意:第一次調度時,由於後端的RS上並無任何的active或inactive鏈接,因此按照配置順序自上而下進行調度分配;屬於輪詢開始;權重值在第一次調度時不發揮任何做用;
3)SED:Shortest Expection Deley,最短時間望延遲;
Overhead計算公式:Overhead=(active connections + 1)*256/Weight
注意:SED算法能夠解決起點不公平問題,可是權重差距比較大,可能會致使不公平結果;
4)NQ:Never Queue,永無隊列;改進版的SED算法;首次調度時,根據後端RS的權重依次爲每一個RS分配一個鏈接,而後再按照SED算法進行調度;必然會保證後端每臺RS至少有一個active connection;
5)LBLC:Locality-Based Lease Connections,基於本地的最少鏈接;動態的DH算法;
6)LBLCR:LBLC with Replication,帶有複製功能的LBLC算法;web

lvs的集羣類型:
標準集羣類型:lvs-nat、lvs-dr(最爲經常使用且效率最高的模型)、lvs-tunnel:
非標準集羣類型:lvs-fullnat算法

**(一)lvs-nat類型**:只作目標地址轉換,至關於多目標IP地址的DNAT;
            經過將請求報文中的目標IP地址和目標端口號修改成某個利用特定調度算法挑選出來的後端的RS的RIP即對應端口號的地址轉換的集羣服務類型;
                注意事項:
                1.RIP和DIP必須在同一邏輯網段中,而且應該都是私有IP地址,同時要求RS的網關指向調度器的DIP;
                2.客戶端發送的請求報文和RS響應的報文都必須通過Director轉發,Director容易稱爲整個集羣服務系統的性能平均且容易引起單獨故障;
                3.在Director上,真正的執行DNAT,所以其還能夠實現端口重定向;客戶端所請求的服務器端服務端口和後端RS提供的服務端口能夠不一樣;
                4.VS必須是Linux系統,RS能夠安裝任意操做系統;

**(二)lvs-dr類型**:Direct Routing,直接路由;
        經過爲請求報文從新封裝一個數據鏈路層首部(MAC地址)進行報文轉發;從新封裝以後的數據報文的源MAC地址是Director的DIP所在網絡接口的MAC地址,目的MAC地址爲利用某種調度算法挑選出來的後端Real Server的RIP所在的接口的MAC地址;在整個過程當中,源IP地址、目的IP地址、源端口號及目的端口號等協議封裝屬性均保持不變

        注意事項:
            1.確保前端路由器可以將目標IP地址爲VIP的報文成功發往Director;
                1) 在前端路由器上靜態綁定VIP和MAC地址的映射關係;
                2) 在全部的RS上使用arptables,進而能夠過濾不指望的ARP請求和ARP應答;
                3) 在全部的RS上修改特定的內核參數以限制ARP的通告和對ARP請求的應答方式:
                        arp_ignore - INTEGER  (定義怎麼樣去發送應答消息)
                            arp_ignore的INTEGER屬性:
                                    0:默認值,響應任意網卡上接收到的對本機IP地址的ARP請求,不考慮該目的IP地址是否在接收ARP報文的網卡上;
                                    1:只響應目的IP地址爲接收網卡上的本地地址的ARP請求;
                                    2:只響應目的IP地址爲接收網卡上的本地地址,而且ARP請求的源IP地址必須與接收網絡在同一網段的ARP請求;
                                    3:若是ARP請求數據包所請求的IP地址對應的本地地址其做用範圍爲主機範圍,不響應ARP請求;若是做用範圍是全局或鏈路,就響應ARP請求;
                                    4-7:保留,未使用;
                                    8:不迴應任何ARP請求;
                     arp_announce - INTEGER      (定義怎麼樣去發送arp的通告報文)
                         arp_announce參數的經常使用取值爲0,1,2;
                                0:默認值,容許使用任意網卡上的IP地址做爲ARP請求的源IP地址,向全部的網卡發出通告;
                                1:儘可能避免使用不屬於該發送網卡所在子網的本地地址做爲發送ARP請求的源IP地址;
                                2:忽略IP數據包的源IP地址,選擇該發送網卡上最合適的本地地址做爲ARP請求的源IP地址;
             2.RS的RIP能夠是私有IP地址,能夠是公有IP地址;RIP和DIP應該在同一邏輯網段;RIP和VIP並不要求必須在同一網段;
             3.全部的請求報文都必須通過Director,可是全部的響應報文都無需經過調度器轉發,而是直接經過路由器轉發至客戶端便可;
             4.不支持DNAT及端口重定向;
             5.RS必須安裝Linux操做系統;
             6.IP地址的配置:
                    1) 在調度器上,物理網卡的主接口上配置DIP,接口的label上配置VIP;這樣的配置可使VIP滾動;
                    2) 在RS上,必須配置RIP和VIP,其中RIP配置在物理網卡的主接口上,而VIP配置在環回接口的label上;

 **(三)lvs-tunnel**:隧道;不對客戶端的請求報文的IP首部作修改,即:源IP爲CIP,目的IP爲VIP,而是在原IP報文的封裝格式以外再次封裝一個IP首部(源IP爲DIP,目的IP爲RIP),將從新封裝過的報文發往通過特定調度算法挑選出來的後端RS上;
         注意事項:
                1.CIP、VIP、DIP、RIP都應該是公有IP地址;
                2.全部的請求報文都必須通過Director,可是響應報文會直接從RS發往Client,而再也不通過Director;
                3.不支持DNAT和端口重定向;
                4.要求Director和RS都必須支持隧道協議;IPsec
                5.在RS上必須同時配置RIP和VIP;

**(四)lvs-fullnat**:經過同時修改請求報文的源IP地址和目的IP地址實現報文轉發;
            注意事項:
                1.CIP和VIP是公有地址,DIP和RIP是私有地址,而且DIP和RIP能夠屬於不一樣的邏輯網段;
                2.RS對收到的請求報文的響應報文,必須以DIP做爲目的IP地址進行封裝,全部這次通訊的請求報文和響應報文都必須通過Director;
                3.支持SNAT、DNAT及端口重定向;
                4.此類型默認不受內核支持;

負載均衡集羣的實現(LB Cluster):
(一)基本環境配置:
使用ipvsadm/ipvs來實現LVS:
ipvs:工做於netfilter框架中的INPUT鏈上,內核中的TCP/IP協議棧上的框架組件;
ipvsadm:用戶空間中用於編寫ipvs集羣服務的應用程序;sql

1.安裝ipvsadm:
首先須要查看是否支持ipvsadm:
~]# grep -i -C 10 "ipvs" /boot/config-3.10.0-327.el7.x86_64
檢查是否安裝ipvsadm應用程序:在光盤的鏡像中;
rpm -q ipvsadm
yum -y install ipvsadm
2.掌握ipvsadm命令:
1)管理集羣服務:增、刪、改
(1)增長lvs集羣服務:
ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask] [--pe persistence_engine] [-b sched-flags]
--tcp-service -t service-address :基於TCP協議的集羣服務;
service-address :與VIP綁定的套接字,即:VIP:PORT
--udp-service -u service-address :基於UDP協議的集羣服務;
service-address :與VIP綁定的套接字,即:VIP:PORT
--fwmark-service -f fwmark :基於防火牆標記(FWM)的集羣服務
service-address :經過iptables工具在mangle表上對數據設置的標記;
--scheduler -s scheduler :指定lvs集羣服務挑選後端RS的調度算法;默認是lsc算法;
--persistent -p [timeout] :是否開啓持久鏈接,並定義持久鏈接的超時時間,若是省略超時時間,默認值爲360s;
(2)修改lvs集羣服務中的屬性:
ipvsadm -E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask] [--pe persistence_engine] [-b sched-flags]
--edit-service -E :編輯、修改集羣服務;
(3)刪除集羣服務:
ipvsadm -D -t|u|f service-address
--delete-service -D :刪除指定的集羣服務;
(4)清除lvs集羣服務:
ipvsadm -C
--clear -C : 清除全部集羣服務; //不推薦使用此方式清除集羣服務,若是必需要刪除,能夠是-D代替指定刪除;後端

2)管理集羣中的Real Server:增、刪、改
        (1)在指定的集羣服務中添加Real Server:
            ipvsadm -a -t|u|f service-address -r server-address [options]
                --add-service     -A :向集羣中添加RS;
                --real-server  -r server-address :指定計劃要添加至服務器集羣中的後端RS的IP地址及端口號;只有在使用NAT類型的lvs集羣時,才能指定端口號;
                options:
                    --gatewaying   -g :指定lvs集羣的類型爲DR,默認類型;
              --ipip         -i :指定lvs集羣的類型爲TUN;
              --masquerading -m :指定lvs集羣的類型爲NAT;
              --weight       -w weight :爲後端的RS指定權重值(通常是整數);
        (2)修改集羣中的RS屬性:
            ipvsadm -e -t|u|f service-address -r server-address [options]
                --edit-server     -e :編輯、修改集羣中的RS屬性;
        (3)從集羣中刪除RS:
            ipvsadm -d -t|u|f service-address -r server-address
                --delete-server   -d :從指定的集羣服務中,刪除指定的Real Server;

    3)查看集羣服務和RS的屬性及統計信息;
        ipvsadm -L|l [options]
            --list            -L|-l:列表顯示指定的集羣服務或RS屬性;

            options注意包括:
                --numeric      -n:以數字格式顯示IP和PORT等信息;
                --exact:顯示精確值;
                --connection   -c:輸出當前ipvs的各鏈接的狀態;
                --stats:輸出lvs集羣的詳細的統計信息;
                --rate:輸出lvs集羣中與傳輸速率相關的信息;
                --timeout:輸出TCP、TCP的FIN標誌位及UDP會話的超時時長;

        ipvs的規則的保存和重載:
                --save            -S:用於保存ipvs規則;
                    ipvsadm -S [-n] > /PATH/TO/IPVS_RULL_FILE
                    ipvsadm-save > /PATH/TO/IPVS_RULL_FILE

                --restore         -R:用於重載ipvs規則;
                    ipvsadm -R < /PATH/TO/IPVS_RULL_FILE
                    ipvsadm-restore < /PATH/TO/IPVS_RULL_FILE

            使已經被保存的規則於開機時自動載入:
                CentOS 6之前的發行版本:
                    # chkconfig ipvsadm on
                CentOS 7之後的發行版本:
                    # systemctl enable ipvsadm.service

(二)lvs-nat的實現:
1個Director + 2個Real Server:安全

都是在Director上的配置:
        一、建立集羣服務:
            ipvsadm -A -t 172.16.72.3:80 -s rr
        二、向集羣中添加RS:
            ipvsadm -a -t 172.16.72.3:80 -r 192.168.100.100:80 -m -w 1
            ipvsadm -a -t 172.16.72.3:80 -r 192.168.100.200:8000 -m -w 2

        注意:後端的RS的網關必須指向Director的DIP;

(三)lvs-dr的實現:
1個Director + 2個Real Server:服務器

在lvs-dr類型的集羣中,各個主機(包括Director和各RS)都須要配置VIP;爲了解決IP地址衝突的問題,一般有如下幾種方法:
        1.在前端路由器上靜態綁定VIP和MAC地址的對應關係;
        2.在各個RS中使用arptables對ARP報文進行過濾;
        3.在各個RS中修改對應的內核參數,以此來限制ARP報文的通告和應答級別;
            arp_ignore
                0:默認值;
                1:
                2:
            arp_announce
                0:默認值;
                1:
                2:

            經常使用的內核參數設定值的選擇:
                arp_ignore = 1
                arp_announce =2

    配置lvs-dr類型:
        在Director上的配置:
            1.主網絡接口上配置DIP;
            2.在網絡接口的標籤接口上配置VIP;
                ~]# ifconfig eno16777736:0 172.16.72.254 netmask 255.255.255.255 broadcast 172.16.72.254 up
            3.建立集羣服務:應該在RS均正確配置以後再執行;
                ipvsadm -A -t 172.16.72.254:80 -s rr
            4.向集羣服務中添加RS:
                ipvsadm -a -t 172.16.72.254:80 -r 172.16.72.5 -g -w 1
                ipvsadm -a -t 172.16.72.254:80 -r 172.16.72.6 -g -w 2

        在RS上的配置:
            1.主網絡接口上配置RIP:
            2.在lo的標籤接口上配置VIP;
                ~]# ifconfig lo:0 172.16.72.254 netmask 255.255.255.255 broadcast 172.16.72.254 up
            3.調整ARP相關的內核參數:
                echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
                echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
                echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
                echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
            4.爲了可以使響應報文從lo:0標籤接口向外封裝發送數據,須要指定一條特殊的靜態路由:
                route add -host 172.16.72.254 dev lo:0

2、高可用集羣(HA Cluster):(lvs自己並、不支持高可用)
高可用主要是指:服務高可用和資源高可用
在lvs集羣中,可能有兩種故障:
1.Director故障不可用;
keepalived:原生的lvs的Director高可用解決方案;
heartbeat
corosync/pacemaker:通用的高可用解決方案;

2.後端RS故障不可用;
            lvs的Director不考慮後端RS的可用與否,只是按照調度算法進行客戶端請求調度;
            完整的實現:週期性的對各個RS進行健康狀態檢測;
                檢測失敗:應該從lvs集羣服務中將對應的RS移除;
                檢測成功:將對應RS從新加入lvs集羣服務中;從新建立lvs集羣服務;
                全部的RS檢測均失敗:臨時刪除lvs集羣服務,並使調度器本地的web服務可以響應一個相對比較友好的錯誤頁面,sorry_server;

        檢測後臺服務器RS的方式:
            網絡層檢測;ping
            傳輸層檢測:端口探測,nmap
            應用層檢測:文件資源的存在性檢測;文件訪問權限檢測;文件內容有效性檢測;

        **HA Cluster實現方案:**
                基於VRRP協議的實現:(keepalived主要用來後端RS的健康狀態檢測)
                    keepalived,專用於高可用lvs的Director;
                基於AIS的實現:完備的HA集羣;
                    heartbeat
                    corosync + pacemaker

            **VRRP協議**:Virtual Redundancy Router Protocol,虛擬路由器冗餘協議;
                    VRRP技術術語:
                        虛擬路由器:虛擬的路由器的接口;
                        VRID:虛擬路由器標識符,描述路由器的分組;而且能夠肯定虛擬路由器的虛擬MAC地址,取值範圍爲:0-255(00-ff);
                        MASTER:虛擬IP地址的擁有者,能夠利用虛擬IP地址接收用戶請求,而且可以完成數據轉發功能;
                        BACKUP:不參與數據轉發,僅檢測MASTER的健康狀態;
                        虛擬IP地址:VIP,虛擬路由器接口的IP地址;
                        虛擬MAC地址:VMAC,00-00-5e-00-01-{VRID}
                        優先級:選舉成爲MASTER的主要的參考標準,取值範圍爲:0-255;
                            0:放棄MASTER選舉;
                            255:虛擬IP地址和某個路由器接口的IP地址相同,則該路由器會自動得到255的優先級,從而直接成爲MASTER;
                            1-254:越大越有可能成爲MASTER;
                        非搶佔式:若是MASTER故障致使狀態發生變化,則全部的BACKUP會從新選舉產生新的MASTER;此時,若是原來的MASTER從故障中恢復,則直接成爲BACKUP狀態,直到當前的MASTER故障以後,全部的BACKUP從新選舉MASTER時,其才能從新稱爲新的MASTER;
                        搶佔式:若是MASTER故障致使狀態發生變化,則全部的BACKUP會從新選舉產生新的MASTER;此時,若是原來的MASTER從故障中恢復,則當即通告本身的優先級並啓動新一輪選舉,以後從新成爲MASTER;

                    VRRP的認證方式:無認證、簡單字符串認證、MD5

                    VRRP的工做模式:
                        單個實例:MASTER/BACKUP
                        多個實例:MASTER/BACKUP, MASTER/MASTER

    **  keepalived:**
            VRRP協議在linux系統中的應用實現,爲了高可用ipvs調度器;也稱爲"ka";
            keepalived經過調用內核中的系統調用接口完成ipvs的規則編寫,從而能夠用於管理lvs集羣服務;全部的規則,都定義在其配置文件中;
            keepalived還能夠對VIP地址進行浮動設置;
            keepalived還能夠爲後端各RS提供健康狀態檢測,能夠基於傳輸層及應用層實現;
            keepalived還能夠基於外部腳本調用接口完成腳本中定義的功能,甚至能夠高可用其餘的非lvs服務;
            keepalived在RHEL 6.4+或CentOS 6.4+的發行版本的操做系統中,被收錄到官方系統光盤鏡像之中,直接基於本地Base源使用yum命令完成安裝便可;

        keepalived的組件:
            1.控制面板:配置文件分析器;
            2.內存管理組件;
            3.IO複用器組件;
            4.核心組件:
                VRRP Stack:實現VRRP協議功能的組件;
                Checkers:後端RS作健康狀態檢測的組件;
                SMTP:調用SMTP協議,將路由器狀態轉換的消息以郵件的形式發送到指定管理員郵箱;
                Watch Dog:監控Checkers和VRRP Stack的工做狀態;若是異常,負責從新啓動keepalived進程;
                ipvs wrapper:向內核中的ipvs框架傳輸ipvs規則,用於構建、管理、移除lvs集羣服務及集羣中的RS的組件;
                netlink reflactor:管理虛擬路由器接口;

        配置HA Cluster的前期準備:
            1.各個節點主機之間時間必須同步,可使用時間服務器,如ntp或chrony;
            2.確保iptables和SELinux的規則不會阻礙各個節點以前的數據通訊;
            3.各個節點主機之間須要經過主機名互相通訊(對ka並不是必須);
            4.出於安全考量,各個節點主機之間能夠以root用戶的身份,基於密鑰認證的方式進行ssh通訊(對於ka非必須);

        keepalived安裝:
            在CentOS 7.2中,直接使用光盤鏡像yum倉庫,使用yum install keepalived安裝便可;

            程序環境:
                主配置文件:/etc/keepalived/keepalived.conf
                主程序文件:/usr/sbin/keepalived
                Unit File:/usr/lib/systemd/system/keepalived.service

            主配置文件的結構:
                GLOBAL CONFIGURATION
                    Global definitions
                        global_defs {
                            notification_email {
                                         root@localhost //配置接收郵件通知的郵箱地址;
                            }
                            notification_email_from keepalived@localhost
                            smtp_server 127.0.0.1  //設定用於發送電子郵件的郵件服務器;
                            smtp_connect_timeout 30      # integer, seconds
                            router_id my_hostname //設置路由器ID,僅僅爲了區分不一樣的設備而已;若是不修改,也不會影響keepalived服務自己;
                            vrrp_mcast_group4 224.0.0.18 //設置發送VRRP協議經過的目標組播通訊地址;必須保證全部參數選舉的路由器都必須有相同的組播通訊地址;
                        }

                VRRPD CONFIGURATION
                    vrrp_instance inside_network { //定義VRRP的實例及實例名稱;
                        state MASTER  //指定當前設備的初始狀態;
                        interface eno16777736 
                            //指定被VRRP協議綁定的網絡接口,即發送VRRP經過信息的網絡接口;
                        virtual_router_id 51 //指定虛擬路由器標識,用於肯定VRRP備份組;
                        priority 100 //指定當前節點的優先級,指定的範圍爲:1-254;
                        advert_int 1 //發送VRRP經過的時間間隔,單位是秒;
                        authentication {
                            auth_type PASS //設置VRRP協議各節點之間的認證方式,PASS表示簡單密碼
                            auth_pass MTUwPBjd //設置認證密碼,不超過8個字符;
                        }
                        virtual_ipaddress {
                            <IPADDR>/<MASK> brd <IPADDR> dev <STRING> scope <SCOPE> label <LABEL>
                        } //設置虛擬IP地址的專用上下文
                        nopreempt //設置當前節點爲非搶佔模式,默認爲搶佔模式;
                        preempt_delay 300 //搶佔模式開始前的延遲時間;
                        notify_master <STRING>|<QUOTED-STRING>
                        notify_backup <STRING>|<QUOTED-STRING>
                        notify_fault <STRING>|<QUOTED-STRING>
                            //設置噹噹前服務器狀態發生變化時,所觸發的腳本文件的路徑及相關參數;
                        track_script {
                            SCRIPT_NAME
                        }
                    }

                LVS CONFIGURATION

                    virtual server vip vport | fwmark <INT> {
                        delay_loop <INT>  //服務輪詢的時間間隔設定;
                        lb_algo rr|wrr|lc|wlc|lblc|sh|dh //指定負載均衡調度算法;
                        lb_kind NAT|DR|TUN //指定負載均衡集羣的類型;
                        persistence_timeout <INT> //啓用持久鏈接並設置超時時間;
                        protocol TCP //負載均衡服務支持的協議;目前僅支持TCP;
                        sorry_server <IPADDR> <PORT>  //若是後端RS所有不可用,則須要臨時刪除lvs集羣服務,並設置本地的http服務爲sorry-server,提供友好的錯誤頁面;
                        real_server <IPADDR> <PORT> {
                            weight <INT>  //指定當前RS的權重;
                            notify_up <STRING>|<QUOTED-STRING>
                            notify_down <STRING>|<QUOTED-STRING>
                                //當RS的狀態轉爲UP或DOWN時,發送通知所使用的腳本路徑及參數設定;
                            HTTP_GET|SSL_GET {
                                url {
                                    path <STRING> //指定進行後端RS健康狀態檢測的URL地址;
                                    digest <STRING> //比較被檢測資源的md5值是否發生變化;
                                    status_code <INT> //根據響應報文的狀態碼進行後端RS的健康狀態檢測;
                                }
                                nb_get_retry <INT>  //指定對後端RS進行健康狀態檢測重試的次數上限;
                                delay_before_retry <INT> //每次重試以前的延遲時間;
                                connect_ip <IP ADDRESS>
                                connect_port <PORT>
                                    //向後端RS的哪一個IP地址和哪一個端口發出健康狀態檢測請求;
                                bindto <IP ADDRESS>
                                bind_port <PORT>
                                    //向後端RS發出健康狀態檢測請求的源IP地址和源端口號;
                                connect_timeout <INTEGER>  //鏈接超時時間;
                            }
                            TCP_CHECK {
                                connect_ip <IP ADDRESS>
                                connect_port <PORT>
                                    //向後端RS的哪一個IP地址和哪一個端口發出健康狀態檢測請求;
                                bindto <IP ADDRESS>
                                bind_port <PORT>
                                    //向後端RS發出健康狀態檢測請求的源IP地址和源端口號;
                                connect_timeout <INTEGER>  //鏈接超時時間;
                            }
                        }
                    }
相關文章
相關標籤/搜索