您可以在添加監聽時配置健康檢查。通常,使用預設的健康檢查配置即可。

配置健康檢查

您可以通過控制台或API配置監聽的健康檢查。更多詳細資料,參見健康檢查介紹健康檢查常見問題

完成以下操作,配置健康檢查:
  1. 登入負載平衡管理主控台
  2. 選擇地域,查看該地域的所有Server Load Balancer執行個體。
  3. 單擊Server Load Balancer執行個體的ID。
  4. 執行個體詳情頁面,單擊監聽
  5. 單擊添加監聽或目標監聽的配置選項。
  6. 健康檢查頁面,配置健康檢查。
    在配置健康檢查時,建議您使用預設值。
    表 1. 健康檢查配置說明
    健康檢查配置 說明
    健康檢查模式
    監聽為TCP協議時,健康檢查方式可選TCP或HTTP模式。
    • TCP模式的健康檢查是基於網路層探測。
    • HTTP模式的健康檢查是通過發送head請求。
    網域名稱和檢查路徑

    (僅限HTTP方式的健康檢查)

    HTTP健康檢查預設由負載平衡系統通過後端ECS內網IP地址向該伺服器應用配置的預設首頁發起http head請求。

    如果您用來進行健康檢查的頁面並不是應用伺服器的預設首頁,需要指定具體的檢查路徑。

    因為有些應用伺服器會對請求中的host欄位做校驗,即要求要求標頭中必須存在host欄位。如果在健康檢查中配置了網域名稱,則SLB會將網域名稱配置到host欄位中去,反之,如果沒有佈建網域名,SLB則不會在請求中附帶host欄位,因此健康檢查請求就會被伺服器拒絕,可能導致健康檢查失敗。綜上原因,如果您的應用伺服器需要校驗請求的host欄位校,那麼則需要配置相關的網域名稱,確保健康檢查正常工作。

    正常狀態碼

    (僅限HTTP方式的健康檢查)

    選擇健康檢查正常的HTTP狀態碼。

    預設值為http_2xx和http_3xx。

    檢查通信埠 健康檢查服務訪問後端時的探測通信埠。

    預設值為配置監聽時指定的後端通信埠。

    说明 如果該監聽配置了虛擬伺服器組或主備伺服器組,且組內的ECS執行個體的通信埠都不相同,此時不需要配置檢查通信埠。負載平衡系統會使用各自ECS的後端通信埠進行健康檢查。
    響應逾時時間 接收來自健全狀態檢查的響應需要等待的時間。如果後端ECS在指定的時間內沒有正確響應,則判定為健康檢查失敗。

    範圍是1-300秒,UDP監聽的預設值為10秒,HTTP/HTTPS/TCP監聽的預設值為5秒。

    健康檢查間隔 進行健康檢查的時間間隔。

    LVS叢集內所有節點,都會獨立、並行地遵循該屬性對後端ECS進行健康檢查。由於各LVS節點的檢查時間並不同步,所以,如果從後端某一ECS上進行單獨統計,會發現來自負載平衡的健康檢查請求在時間上並不會遵循上述時間間隔。

    範圍是1-50秒,UDP監聽的預設值為5秒,HTTP/HTTPS/TCP監聽的預設值為2秒。

    不健康閾值 同一LVS節點伺服器針對同一ECS伺服器,從成功到失敗的連續健康檢查失敗次數。

    可選值2-10,預設為3次。

    健康閾值 同一LVS節點伺服器針對同一ECS伺服器,從失敗到成功的連續健康檢查成功次數。

    可選值 2-10,預設為3次。

    健康檢查請求和健康檢查返回結果 為UDP監聽配置健康檢查時,您可以在健康檢查請求中輸入請求的內容(比如youraccountID),在健康檢查返回結果中輸入預期的返回結果(比如slb123)。

    同時在後端伺服器的應用邏輯中加入相應的健康檢查應答邏輯,如收到youraccountID的請求時,回應slb123。

    此時,當負載平衡收到後端伺服器發來的正確響應時,則認為健康檢查成功,否則認為健康檢查失敗。此方式能最大程度確保健康檢查的可靠性。



健康檢查響應逾時和健康檢查間隔樣本

以如下健康檢查配置為例:

  • 響應逾時時間:5秒
  • 健康檢查間隔:2秒
  • 健康閾值:3次
  • 不健康閾值:3次

健康檢查失敗時間窗=響應逾時時間×不健康閾值+檢查間隔×(不健康閾值-1),即5×3+2×(3-1)=19s。

從健康狀態到不健康狀態的檢查過程如下圖所示:



健康檢查成功時間窗= (健康檢查成功回應時間×健康閾值)+檢查間隔×(健康閾值-1),即(1×3)+2×(3-1)=7s。

说明 健康檢查成功回應時間是一次健康檢查請求從發出到響應的時間。當採用TCP方式健康檢查時,由於僅探測通信埠是否存活,因此該時間非常短,幾乎可以忽略不計。當採用HTTP方式健康檢查時,該時間取決於應用伺服器的效能和負載,但通常都在秒級以內。

從不健康狀態到健康的狀態檢查過程如下圖所示(假設伺服器響應健康檢查請求需要耗時1s):



HTTP健康檢查中網域名稱的設定

當使用HTTP方式進行健康檢查時,可以設定健康檢查的網域名稱,但並非強制選項。因為有些應用伺服器會對請求中的host欄位做校驗,即要求要求標頭中必須存在host欄位。如果在健康檢查中配置了網域名稱,則SLB會將網域名稱配置到host欄位中去,反之,如果沒有佈建網域名,SLB則不會在請求中附帶host欄位,因此健康檢查請求就會被伺服器拒絕,可能導致健康檢查失敗。綜上原因,如果您的應用伺服器需要校驗請求的host欄位校,那麼則需要配置相關的網域名稱,確保健康檢查正常工作。