負載平衡通過健全狀態檢查來判斷後端伺服器的業務可用性。開啟健全狀態檢查功能後,當某台後端伺服器健全狀態檢查出現異常時,負載平衡會自動將新的請求分發到其他健全狀態檢查正常的後端伺服器上;而當該後端伺服器恢複正常運行時,負載平衡會將其自動回復到負載平衡服務中進行流量轉寄。健全狀態檢查機制提高了使用者業務整體可用性,避免了局部後端伺服器異常對總體服務的影響,是保證業務高可用的重點要素。
配置健全狀態檢查前,建議您先瞭解CLB健全狀態檢查工作原理。
配置健全狀態檢查
您可以在添加監聽時配置健全狀態檢查,通常情況下使用預設的健全狀態檢查配置即可。
在頂部功能表列,選擇執行個體所屬的地區。
在實例管理頁面,找到目標執行個體,單擊執行個體ID。
在執行個體詳情頁,單擊監聽頁簽,單擊添加監聽或在目標監聽操作列單擊修改監聽配置。
根據設定精靈完成監聽配置,直至進入健康檢查設定精靈頁面,健全狀態檢查預設開啟,單擊高級配置右側的修改,完成以下健全狀態檢查配置。
健全狀態檢查配置
說明
健全狀態檢查協議
選擇健全狀態檢查協議類型。監聽為TCP協議時,健全狀態檢查協議可選TCP或HTTP協議。監聽為UDP協議時,健全狀態檢查協議可選TCP、UDP或HTTP協議。監聽為HTTP/HTTPS協議時,健全狀態檢查協議可選HTTP協議。
TCP模式的健全狀態檢查是基於網路層探測,通過發送SYN握手報文來檢測伺服器連接埠是否存活。
UDP模式的健全狀態檢查通過UDP報文探測來擷取狀態資訊。
HTTP模式的健全狀態檢查是通過發送HEAD或GET請求類比瀏覽器的訪問行為來檢查伺服器應用是否健康。
健全狀態檢查方法
(僅HTTP健全狀態檢查協議支援)
七層監聽(HTTP/HTTPS)健全狀態檢查支援HEAD和GET方法,預設採用HEAD方法。
說明如果您的後端應用伺服器不支援HEAD方法或HEAD方法被禁用,則可能會出現健全狀態檢查失敗,此時可以使用GET方法來進行健全狀態檢查。
使用GET方法時,如果Response長度超過8K,會被截斷,但不會影響健全狀態檢查結果的判定。
健全狀態檢查連接埠
健全狀態檢查服務訪問後端時的探測連接埠。預設使用後端伺服器的連接埠進行健全狀態檢查。
說明如果該監聽配置的後端伺服器組內的後端伺服器的連接埠都不相同,此時不需要配置檢查連接埠。負載平衡系統會使用各自的後端伺服器連接埠進行健全狀態檢查。
健全狀態檢查路徑
(僅HTTP健全狀態檢查協議支援)
HTTP健全狀態檢查預設由負載平衡系統向該伺服器應用配置的預設首頁發起HTTP請求。
如果您用來進行健全狀態檢查的頁面並不是應用伺服器的預設首頁,需要指定具體的檢查路徑。
建議對靜態頁面進行檢查。
健全狀態檢查網域名稱(僅HTTP健全狀態檢查協議支援)
如果在健全狀態檢查中配置了健全狀態檢查網域名稱,則SLB會將網域名稱配置到要求標頭host欄位中,反之,如果沒有配置健全狀態檢查網域名稱,SLB則不會在請求中附帶host欄位。
部分應用伺服器會對請求中的host欄位做校正,即要求要求標頭中必須存在host欄位。如果健全狀態檢查網域名稱未配置,健全狀態檢查要求標頭中無host欄位,則請求會被伺服器拒絕,可能導致健全狀態檢查失敗。因此,如果您的應用伺服器需要校正請求的host欄位,則需要配置健全狀態檢查網域名稱,確保健全狀態檢查正常工作。
正常狀態代碼
(僅HTTP健全狀態檢查協議支援)
選擇健全狀態檢查正常的HTTP狀態代碼。
預設值為http_2xx和http_3xx。
健全狀態檢查響應逾時時間
每次健全狀態檢查響應的最大逾時時間。
如果後端伺服器在指定的時間內沒有正確響應,則判定為健全狀態檢查失敗。
健全狀態檢查間隔時間
進行健全狀態檢查的時間間隔。
負載平衡叢集內所有節點,都會獨立、並行地遵循該屬性對後端伺服器進行健全狀態檢查。由於各節點的檢查時間並不同步,所以,如果從後端某一伺服器上進行單獨統計,會發現來自負載平衡的健全狀態檢查請求在時間上並不會遵循上述時間間隔。
健全狀態檢查健康閾值
雲端服務器從失敗到成功的連續健全狀態檢查成功次數。
健全狀態檢查不健康閾值
雲端服務器從成功到失敗的連續健全狀態檢查失敗次數。
健全狀態檢查請求和健全狀態檢查返回結果(僅UDP健全狀態檢查協議支援)
為UDP監聽配置健全狀態檢查時,您可以在健全狀態檢查請求中輸入請求的內容(例如youraccountID),在健全狀態檢查返回結果中輸入預期的返回結果(例如slb123)。
同時在後端伺服器的應用邏輯中加入相應的健全狀態檢查應答邏輯,如收到youraccountID的請求時,回應slb123。
此時,當負載平衡收到後端伺服器發來的正確響應時,則認為健全狀態檢查成功,否則認為健全狀態檢查失敗。此方式能最大程度確保UDP健全狀態檢查的可靠性。
單擊下一步直至監聽配置完成。
查看健全狀態檢查狀態
在頂部功能表列,選擇執行個體所屬的地區。
在實例管理頁面,找到目標執行個體,單擊執行個體ID。
在執行個體詳情頁,單擊監聽頁簽,查看監聽的健全狀態檢查狀態。
健全狀態檢查主要包括以下狀態:
初始化:表示健全狀態檢查後端伺服器列表初始化中。
正常:表示不存在異常狀態的後端伺服器。
異常:表示存在異常狀態的後端伺服器。
未開啟:表示健全狀態檢查未開啟。
單擊對應監聽後的異常或者初始化,可以查看監聽健全狀態檢查為異常/初始化的監聽/轉寄策略、伺服器組、雲端服務器/連接埠、健康狀態和異常原因。
健全狀態檢查探測
健全狀態檢查探測是根據負載平衡監聽中的健全狀態檢查配置產生探測指令碼,通過ECS雲助手在您的ECS執行個體上執行指令碼,擷取健康探測結果,用於在您配置後端伺服器後提前探測後端伺服器的健康狀態。
目前不支援對轉寄策略中的後端伺服器進行探測。
由於健全狀態檢查探測和實際健全狀態檢查上報採用了不同的鏈路,所以最終的結果可能不完全一致,探測為使用者提供健全狀態檢查配置上的建議,而健全狀態檢查以配置完成後實際結果為準。
健全狀態檢查探測前提條件
確保您已授權RAM的
AliyunSLBHealthDiagnoseRole
權限原則,以允許阿里雲傳統型負載平衡服務訪問您的ECS服務。後端伺服器ECS需要同時滿足以下條件:
網路類型是專用網路(Virtual Private Cloud,簡稱VPC)。
已安裝Linux系統和雲助手。如何安裝雲助手,請參見安裝雲助手Agent。
執行個體處於running狀態,且系統預設Shell為bash。
監聽已開啟健全狀態檢查並且後端伺服器組中已經添加ECS執行個體。
健全狀態檢查探測操作步驟
在頂部功能表列,選擇執行個體所屬的地區。
在實例管理頁面,找到目標執行個體,單擊執行個體ID。
在執行個體詳情頁,單擊監聽頁簽,單擊添加監聽或在目標監聽操作列單擊修改監聽配置。
根據設定精靈完成監聽配置,直至進入健康檢查設定精靈頁面。
單擊進階配置右側的健全狀態檢查探測。
首次使用時,需單擊立即前往開通,在彈出的雲資源訪問授權頁面,單擊同意授權授權RAM。確保您已授權RAM訪問,系統會建立一個健康診斷角色AliyunSLBHealthDiagnoseRole,授權後CLB將使用此角色來訪問後端伺服器ECS。
在健全狀態檢查探測頁面,單擊目標後端伺服器操作列下的開始探測。
負載平衡支援同時選擇5個ECS執行個體進行批量探測。如果ECS數量過大,請分批進行探測。
單擊確定開始診斷。診斷完成後控制台將展示診斷結果。
目前監聽支援的診斷項如下:
監聽類型
健全狀態檢查連接埠狀態
iptables配置
rpfilter配置
HTTP探測響應
UDP探測
TCP
✔
✔
✔
✔
-
UDP
✔
✔
✔
-
✔
HTTP
✔
✔
✔
✔
-
HTTPS
✔
✔
✔
✔
-
關閉健全狀態檢查
如果您的業務對負載敏感性高,高頻率的健全狀態檢查探測可能會對正常業務訪問造成影響。您可以結合業務情況,通過降低健全狀態檢查頻率、增大健全狀態檢查間隔、七層檢查修改為四層檢查等方式,來降低對業務的影響。但為了保障業務的持續可用,不建議關閉健全狀態檢查。
您可以關閉健全狀態檢查功能,但關閉健全狀態檢查後,當後端某個ECS出現異常時,CLB還是會把請求轉寄到該異常的ECS上,造成部分業務不可訪問。所以建議一般情況下不要關閉健全狀態檢查。
在頂部功能表列,選擇執行個體所屬的地區。
在實例管理頁面,找到目標執行個體,單擊執行個體ID。
在執行個體詳情頁,單擊監聽頁簽,單擊添加監聽或在目標監聽操作列單擊修改監聽配置。
根據設定精靈完成監聽配置,直至進入健康檢查設定精靈頁面。
關閉健全狀態檢查開關,單擊下一步並提交確認直至完成。
相關文檔
如果您不瞭解CLB健全狀態檢查機制,您可參考CLB健全狀態檢查工作原理。
如果您遇到CLB健全狀態檢查相關問題,您可參考CLB健全狀態檢查FAQ進行問題定位處理。
您可通過CLB提供的健全狀態檢查日誌功能,分析伺服器健全狀態檢查日誌資料,詳情可參考儲存和下載健全狀態檢查日誌。