監聽基於配置的轉寄策略,將業務請求路由至指定的伺服器組。伺服器組按照調度演算法,將業務流量分發至相應的後端伺服器。
工作原理
伺服器群組類型
伺服器群組類型 | 預設伺服器組 | 虛擬伺服器組 | 主備伺服器組 |
類型說明 | 每個CLB執行個體內建一個預設伺服器組 (有且僅有一個) | 使用者自行建立與管理 | 使用者自行建立與管理 |
後端伺服器數量 | 一個或多個 | 一個或多個 | 兩個(一主一備) |
特點 |
|
|
|
適用情境 | 簡單架構,所有請求轉寄到同一組後端伺服器 | 複雜架構,例如按照網域名稱/連接埠分發業務請求 | 資料庫、核心API 等固定主備模式的業務 |
支援監聽類型 | TCP/UDP/HTTP/HTTPS | TCP/UDP/HTTP/HTTPS | 僅TCP/UDP |
權重配置
調度演算法決定 CLB 如何將收到的請求分發到後端的多個伺服器。權重則是在支援加權的演算法中,控制每台伺服器流量分配比例的參數。
生效範圍:使用支援加權的調度演算法。輪詢演算法不生效。
取值範圍:0-100,預設值為100。
權重為0的行為:伺服器不再接收新的請求流量。但已建立的串連會繼續處理直至正常斷開,健全狀態檢查也會繼續進行。常用於伺服器的優雅下線。
權重變更的生效範圍:權重變更只對建立串連生效,不影響已建立的串連。在長串連情境下,調整權重後流量變化會比較緩慢。
服務高可用
開啟 CLB 健全狀態檢查,定期發送請求來確認伺服器的狀態。
健全狀態檢查成功:伺服器狀態正常,CLB 會將流量轉寄給該伺服器。
健全狀態檢查失敗:伺服器狀態異常,CLB 會停止向該伺服器轉寄任何新的請求流量,直至其恢複正常。
CLB 健全狀態檢查使用 100.64.0.0/10 網段,需確保後端伺服器的安全性群組策略已允許存取此網段的訪問,否則健全狀態檢查會失敗,導致業務中斷。主備伺服器依賴健全狀態檢查進行主備切換:
主伺服器健全狀態檢查失敗後,流量將切換到備伺服器。由於備伺服器預設不做健全狀態檢查,需要使用者自行確保備伺服器的可用性,保證切換後可用。
主備伺服器的切換時間取決於設定的健全狀態檢查響應逾時時間,當主機健全狀態檢查恢複之後流量會自動切換至主機。
適用範圍
關聯關係:
監聽與伺服器組是 CLB 執行個體維度資源。不同 CLB 執行個體的監聽、伺服器組資訊不互連。
一個伺服器組能同時被多個監聽綁定,但是一個監聽只能同時綁定一個伺服器組。
CLB 四層監聽不支援ECS執行個體同時作為後端伺服器和用戶端。如有需求,可使用七層監聽。
掛載後端伺服器:
CLB 僅支援掛載同帳號、同地區的後端伺服器。
私網 CLB 執行個體:只能掛載 CLB 所屬 VPC 內的後端伺服器。
公網 CLB 執行個體:添加多個後端伺服器必須屬於同一個 VPC。
CLB 所有類型伺服器組均支援掛載如下資源:Elastic Compute Service、彈性網卡ENI、彈性容器ECI。
僅支援添加已經綁定至ECS的彈性網卡。彈性網卡的主私網IP及輔助私網IP均可以添加。
ECS 作為後端伺服器,進行熱遷移時,可能導致CLB長串連斷開,重新串連後即可恢複。需確保應用程式具備自動重連機制。
配置可修改性:
配置可修改性
增刪伺服器組
修改連接埠
修改權重
預設伺服器組
首次建立監聽並關聯後,連接埠不可修改
虛擬伺服器組
主備伺服器組
主備角色不支援修改
設定管理員組
控制台
預設伺服器組
無需建立,每個CLB執行個體內建一個預設伺服器組。
添加伺服器:
前往CLB - 執行個體管理頁面,單擊目標執行個體 ID,選擇預設伺服器組頁簽,單擊新增。
設定伺服器類型、資源群組,篩選可用資源。
如需添加彈性網卡 ENI,需先開啟進階模式,並單擊已綁定彈性網卡的ECS執行個體右側的加號表徵圖,找到目標彈性網卡。勾選需要綁定的彈性網卡,可選擇IP地址。
配置連接埠與權重:
配置連接埠:選擇監聽頁簽,單擊新增監聽。在後端伺服器嚮導介面,設定預設伺服器組的伺服器通信埠,同一監聽下預設伺服器組內的不同伺服器的連接埠必須相同。
僅支援添加監聽時指定連接埠,後續無法修改。
配置權重:設定已選伺服器的權數。
虛擬伺服器組
前往CLB - 執行個體管理頁面,單擊目標執行個體 ID,選擇虛擬伺服器組,單擊建立虛擬伺服器組。
添加伺服器:
設定伺服器類型、資源群組,篩選可用資源。
如需添加彈性網卡 ENI,需先開啟進階模式,並單擊已綁定彈性網卡的ECS執行個體右側的加號表徵圖,找到目標彈性網卡。勾選需要綁定的彈性網卡,可選擇IP地址。
配置已選伺服器的通信埠和權數。選擇添加連接埠,可以為同一個後端伺服器配置多個不同的連接埠。
主備伺服器組
前往CLB - 執行個體管理頁面,單擊目標執行個體 ID,選擇主備伺服器組,單擊建立主備伺服器組。
添加伺服器:
設定伺服器類型、資源群組,篩選可用資源。
如需添加彈性網卡 ENI,需先開啟進階模式,並單擊已綁定彈性網卡的ECS執行個體右側的加號表徵圖,找到目標彈性網卡。勾選需要綁定的彈性網卡,可選擇IP地址。
僅支援添加 2 台後端伺服器。
配置已選伺服器的通信埠,選擇添加連接埠,可以為同一個後端伺服器配置多個不同的連接埠。添加後,選擇主機,配置主備關係。
API
預設伺服器組
調用AddBackendServers添加後端伺服器。
調用SetBackendServers設定後端伺服器權重。
調用RemoveBackendServers移除後端伺服器。
虛擬伺服器組
調用CreateVServerGroup建立虛擬伺服器組並添加後端伺服器,配置連接埠和權重。
調用AddVServerGroupBackendServers/RemoveVServerGroupBackendServers,從指定的虛擬伺服器組中添加/移除後端伺服器。
調用DeleteVServerGroup刪除虛擬伺服器組。
主備伺服器組
調用CreateMasterSlaveServerGroup建立主備伺服器組。
調用DeleteMasterSlaveServerGroup刪除主備伺服器組。
常見問題
CLB執行個體處於運行中是否可調整ECS數量?
預設伺服器組、虛擬伺服器組:支援在任意時刻增加或減少負載平衡的後端ECS執行個體數量,且支援不同ECS執行個體之間的切換。為保障服務穩定,確保在執行操作前已開啟健全狀態檢查,且後端至少有一台正常啟動並執行ECS執行個體。
主備伺服器組:不支援調整。
後端ECS執行個體的作業系統是否可以不同?
可以不同。
CLB 不限制後端 ECS 執行個體的作業系統,只要確保應用服務部署相同且資料一致即可。建議使用相同的作業系統,以便於統一管理和維護。
可以使用不同地區的ECS執行個體作為後端伺服器嗎?
CLB 不支援直接掛載跨地區的後端伺服器。若需實現跨地區部署,可選擇以下方案:
結合全域流量管理產品,在CLB上層部署全域流量管理並且在各地區部署多個CLB,通過切換不同的CLB實現跨地區掛載。
使用支援跨地區掛載後端伺服器的應用型負載平衡ALB或網路型負載平衡 NLB。
為什麼有100開頭的IP在頻繁訪問ECS執行個體?
請求來自負載平衡系統的健全狀態檢查和可用性監控。
來源:阿里雲保留位址區段
100.64.0.0/10。安全性:該網段由阿里雲保留,其他使用者無法分配,不存在安全風險。
配置建議:請在安全性群組中允許存取該網段,以確保服務可用性。
ECS執行個體上沒有配置壓縮,為什麼從CLB返回的HTTP響應卻被壓縮了?
原因:CLB 監聽配置中開啟了 Gzip 壓縮,且用戶端瀏覽器支援壓縮。
操作:如需關閉,請在 CLB 控制台的監聽配置中關閉 Gzip 壓縮功能,或改用 TCP 監聽。
ECS執行個體使用了HTTP 1.0是否支援chunked transfer傳輸編碼?
支援。
為什麼CLB後端ECS執行個體頻繁收到User-Agent為KeepAliveClient的請求?
現象:後端 ECS 收到大量來自內網 IP、User-Agent為
KeepAliveClient的 GET 請求。原因:監聽協議為 TCP,但健全狀態檢查協議配置為 HTTP。TCP 監聽使用 HTTP 健全狀態檢查時,預設使用 GET 方法。
解決:將監聽協議和健全狀態檢查協議統一(如都使用 TCP 或都使用 HTTP)。
預設伺服器組下的伺服器連接埠支援修改嗎?
不支援直接修改。
限制:預設伺服器組的連接埠僅能在建立監聽時設定,且同一監聽下的所有後端伺服器連接埠必須一致。
解決:如需為同一監聽配置不同的後端連接埠,請使用虛擬伺服器組。
CLB四層監聽支援ECS執行個體同時作為後端伺服器和用戶端?
不支援,上述配置會導致訪問環路。
替代方案:
使用 CLB 七層監聽(HTTP/HTTPS)。
使用 NLB 執行個體並關閉伺服器組的用戶端地址保持功能。參考ECS如何在NLB中同時作為後端伺服器和用戶端。
為什麼CLB後端存在大量TIME-WAIT串連,而ALB後端只有少量?
傳統型負載平衡CLB和應用型負載平衡ALB在與後端伺服器互動時,採用的串連機制不同。
傳統型負載平衡CLB:預設使用HTTP短串連。CLB將請求轉寄給後端伺服器時,會在HTTP頭部插入
Connection: close欄位。當後端伺服器處理完該請求後,會根據此頭部主動發送FIN包中斷連線,每次中斷連線都會進入TIME-WAIT狀態(預設60秒),高並發情境下會快速積累大量TIME-WAIT串連。應用型負載平衡ALB:預設支援HTTP長串連(keep-alive)。單個TCP串連可複用處理多個請求,長串連開啟情況下會減少串連斷開次數,因此減少了TIME-WAIT串連。