CLB伺服器組

更新時間:
Copy as MD

監聽基於配置的轉寄策略,將業務請求路由至指定的伺服器組。伺服器組按照調度演算法,將業務流量分發至相應的後端伺服器。

工作原理

伺服器群組類型

伺服器群組類型

預設伺服器組

虛擬伺服器組

主備伺服器組

類型說明

每個CLB執行個體內建一個預設伺服器組

(有且僅有一個)

使用者自行建立與管理

使用者自行建立與管理

後端伺服器數量

一個或多個

一個或多個

兩個(一主一備)

特點

  • 執行個體共用:執行個體全域共用,所有監聽共用使用

  • 連接埠限制:同一監聽下的所有後端伺服器必須使用相同連接埠

  • 業務靈活:不同監聽可綁定不同伺服器組

  • 多連接埠:同一個虛擬伺服器組,支援配置不同連接埠的後端伺服器

  • 進階路由:結合網域名稱和URL路徑規則,實現更精細的流量分發

  • 業務靈活:不同監聽可綁定不同伺服器組

  • 高可用:主備自動切換

  • 多連接埠:同一個主備伺服器組,支援配置不同連接埠的後端伺服器

適用情境

簡單架構,所有請求轉寄到同一組後端伺服器

複雜架構,例如按照網域名稱/連接埠分發業務請求

資料庫、核心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 網段,請確保後端伺服器的 iptables 或其他第三方安全軟體未屏蔽此網段,否則健全狀態檢查會失敗,導致業務中斷。

主備伺服器依賴健全狀態檢查進行主備切換:

  • 主伺服器健全狀態檢查失敗後,流量將切換到備伺服器。由於備伺服器預設不做健全狀態檢查,需要使用者自行確保備伺服器的可用性,保證切換後可用。

  • 主備伺服器的切換時間取決於設定的健全狀態檢查響應逾時時間,當主機健全狀態檢查恢複之後流量會自動切換至主機。

適用範圍

  • 關聯關係:

    • 監聽與伺服器組是 CLB 執行個體維度資源。不同 CLB 執行個體的監聽、伺服器組資訊不互連。

    • 一個伺服器組能同時被多個監聽綁定,但是一個監聽只能同時綁定一個伺服器組。

    • CLB 四層監聽不支援ECS執行個體同時作為後端伺服器和用戶端。如有需求,可使用七層監聽。

  • 掛載後端伺服器:

    • CLB 僅支援掛載同帳號、同地區的後端伺服器。

      • 私網 CLB 執行個體:只能掛載 CLB 所屬 VPC 內的後端伺服器。

      • 公網 CLB 執行個體:添加多個後端伺服器必須屬於同一個 VPC。

    • CLB 所有類型伺服器組均支援掛載如下資源:Elastic Compute Service、彈性網卡ENI、彈性容器ECI。

      • 僅支援添加已經綁定至ECS的彈性網卡。彈性網卡的主私網IP及輔助私網IP均可以添加。

    • ECS 作為後端伺服器,進行熱遷移時,可能導致CLB長串連斷開,重新串連後即可恢複。需確保應用程式具備自動重連機制。

  • 配置可修改性:

    配置可修改性

    增刪伺服器組

    修改連接埠

    修改權重

    預設伺服器組

    不支援

    首次建立監聽並關聯後,連接埠不可修改

    支援

    虛擬伺服器組

    支援

    支援

    支援

    主備伺服器組

    支援

    不支援

    主備角色不支援修改

設定管理員組

控制台

預設伺服器組

  1. 無需建立,每個CLB執行個體內建一個預設伺服器組。

  2. 添加伺服器:

    1. 前往CLB - 執行個體管理頁面,單擊目標執行個體 ID,選擇預設伺服器組頁簽,單擊新增

      • 設定伺服器類型資源群組,篩選可用資源。

      • 如需添加彈性網卡 ENI,需先開啟進階模式,並單擊已綁定彈性網卡的ECS執行個體右側的加號表徵圖,找到目標彈性網卡。勾選需要綁定的彈性網卡,可選擇IP地址

    2. 配置連接埠與權重:

      • 配置連接埠:選擇監聽頁簽,單擊新增監聽。在後端伺服器嚮導介面,設定預設伺服器組的伺服器通信埠,同一監聽下預設伺服器組內的不同伺服器的連接埠必須相同。

        僅支援添加監聽時指定連接埠,後續無法修改。
      • 配置權重:設定已選伺服器的權數

虛擬伺服器組

  1. 前往CLB - 執行個體管理頁面,單擊目標執行個體 ID,選擇虛擬伺服器組,單擊建立虛擬伺服器組

  2. 添加伺服器:

    • 設定伺服器類型資源群組,篩選可用資源。

    • 如需添加彈性網卡 ENI,需先開啟進階模式,並單擊已綁定彈性網卡的ECS執行個體右側的加號表徵圖,找到目標彈性網卡。勾選需要綁定的彈性網卡,可選擇IP地址

  3. 配置已選伺服器的通信埠權數。選擇添加連接埠,可以為同一個後端伺服器配置多個不同的連接埠。

主備伺服器組

  1. 前往CLB - 執行個體管理頁面,單擊目標執行個體 ID,選擇主備伺服器組,單擊建立主備伺服器組

  2. 添加伺服器:

    • 設定伺服器類型資源群組,篩選可用資源。

    • 如需添加彈性網卡 ENI,需先開啟進階模式,並單擊已綁定彈性網卡的ECS執行個體右側的加號表徵圖,找到目標彈性網卡。勾選需要綁定的彈性網卡,可選擇IP地址

    • 僅支援添加 2 台後端伺服器。

  3. 配置已選伺服器的通信埠,選擇添加連接埠,可以為同一個後端伺服器配置多個不同的連接埠。添加後,選擇主機,配置主備關係。

API

預設伺服器組

虛擬伺服器組

主備伺服器組

常見問題

CLB執行個體處於運行中是否可調整ECS數量?

  • 預設伺服器組、虛擬伺服器組:支援在任意時刻增加或減少負載平衡的後端ECS執行個體數量,且支援不同ECS執行個體之間的切換。為保障服務穩定,確保在執行操作前已開啟健全狀態檢查,且後端至少有一台正常啟動並執行ECS執行個體。

  • 主備伺服器組:不支援調整。

後端ECS執行個體的作業系統是否可以不同?

可以不同。

CLB 不限制後端 ECS 執行個體的作業系統,只要確保應用服務部署相同且資料一致即可。建議使用相同的作業系統,以便於統一管理和維護。

可以使用不同地區的ECS執行個體作為後端伺服器嗎?

CLB 不支援直接掛載跨地區的後端伺服器。若需實現跨地區部署,可選擇以下方案:

為什麼有100開頭的IP在頻繁訪問ECS執行個體?

請求來自負載平衡系統的健全狀態檢查和可用性監控。

  • 來源:阿里雲保留位址區段 100.64.0.0/10

  • 安全性:該網段由阿里雲保留,其他使用者無法分配,不存在安全風險。

  • 配置建議:請確保後端伺服器的 iptables 或其他第三方安全軟體未屏蔽該網段,以確保服務可用性。

如健全狀態檢查異常,可參見 如何排查健全狀態檢查異常?

ECS執行個體上沒有配置壓縮,為什麼從CLB返回的HTTP響應卻被壓縮了?

  • 原因:CLB 監聽配置中開啟了 Gzip 壓縮,且用戶端瀏覽器支援壓縮。

  • 操作:如需關閉,請在 CLB 控制台的監聽配置中關閉 Gzip 壓縮功能,或改用 TCP 監聽。

ECS執行個體使用了HTTP 1.0是否支援chunked transfer傳輸編碼?

支援。

為什麼CLB後端ECS執行個體頻繁收到User-AgentKeepAliveClient的請求?

  • 現象:後端 ECS 收到大量來自內網 IP、User-AgentKeepAliveClient的 GET 請求。

  • 原因:監聽協議為 TCP,但健全狀態檢查協議配置為 HTTP。TCP 監聽使用 HTTP 健全狀態檢查時,預設使用 GET 方法。

  • 解決:將監聽協議和健全狀態檢查協議統一(如都使用 TCP 或都使用 HTTP)。

預設伺服器組下的伺服器連接埠支援修改嗎?

不支援直接修改。

  • 限制:預設伺服器組的連接埠僅能在建立監聽時設定,且同一監聽下的所有後端伺服器連接埠必須一致。

  • 解決:如需為同一監聽配置不同的後端連接埠,請使用虛擬伺服器組。

CLB四層監聽支援ECS執行個體同時作為後端伺服器和用戶端?

不支援,上述配置會導致訪問環路。

替代方案:

為什麼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串連。

如需減少 TIME-WAIT 串連的積累,可選擇以下方案:

  • 改用 CLB 四層(TCP)監聽。四層健全狀態檢查會在握手成功後主動發送 RST 資料包中斷連線,不會進入 TIME-WAIT 狀態。

  • 遷移至應用型負載平衡 ALB,利用其預設的 HTTP 長串連複用機制。

為什麼後端伺服器之間的流量分配不均衡?

常見原因

說明

排查與解決方案

會話保持

開啟會話保持後,同一用戶端的請求會固定轉寄到同一台後端伺服器。當用戶端數量較少時(如使用少量用戶端進行壓測),流量容易集中在個別伺服器上。

檢查是否開啟了會話保持,評估業務是否確實需要。

長串連

已建立的長串連不會因權重調整而重新分配。長串連情境下,調整權重後流量變化會比較緩慢。

  • 在業務低峰期進行擴容或權重調整,等待舊串連自然關閉。

  • 確保後端伺服器的 TCP Keepalive 配置一致,避免串連在部分伺服器上堆積。

健全狀態檢查失敗或波動

個別後端伺服器健全狀態檢查失敗,無法接受請求;或健全狀態檢查狀態頻繁在正常與異常之間切換,造成流量分配不穩定。

  • 查看健全狀態檢查日誌,確認是否存在狀態波動。

  • 適當增大健全狀態檢查間隔和不健康閾值,減少誤判。

  • 確認健全狀態檢查的響應碼配置正確。

總體請求數較少

查看CLB的監控資訊。如果總體的請求數較少,輕微的請求分配不均衡屬於正常現象。

請求量增大後觀察流量分配是否趨於均衡。如果在大量請求下仍不均衡,請排查其他原因。

權重配置不當

各伺服器的權重設定與其實際處理能力不匹配,導致部分伺服器過載而其他伺服器閑置。

  • 確認使用了支援加權的調度演算法(輪詢演算法忽略權重)。

  • 根據後端伺服器的實際處理能力合理設定權重。

如何安全地從 CLB 移除後端 ECS 執行個體?

直接移除 ECS 可能造成業務閃斷。建議先將該 ECS 的權重修改為 0,待已建立的串連處理完畢後再執行移除。權重為 0 的具體行為說明,請參見上文權重配置章節。

如果移除 ECS 後仍有持續的業務請求,可從以下方面排查:

  • 該 ECS 是否同時加入了其他 CLB 執行個體。

  • 該 ECS 自身是否對外提供其他服務,可使用 netstat 命令查看連接埠監聽情況。

新增後端伺服器後為什麼沒有流量轉寄?

CLB 新增後端伺服器後沒有流量轉寄到該伺服器,可從以下幾個方面排查:

  • 健全狀態檢查未通過:後端伺服器的連接埠不通或應用未監聽對應連接埠,會導致健全狀態檢查失敗,CLB 不會向該伺服器轉寄流量。請在 CLB 控制台確認該伺服器的健全狀態檢查狀態是否正常,並檢查後端伺服器上的連接埠監聽和應用運行情況。如健全狀態檢查異常,可參見 如何排查健全狀態檢查異常?

  • 權重設定為 0:權重為 0 的伺服器不會接收新的請求流量。請檢查該伺服器在伺服器組中的權重配置,確認權重值大於 0。權重的詳細說明請參見上文權重配置章節。

  • 添加到了錯誤的伺服器組:CLB 的每個監聽綁定了特定的伺服器組(預設伺服器組或虛擬伺服器組)。如果新增的伺服器被添加到了監聽未綁定的伺服器組中,則該伺服器不會收到對應監聽的流量。請確認目標監聽實際綁定的伺服器組,並將伺服器添加到正確的組中。

  • iptables 或第三方安全軟體屏蔽了健全狀態檢查網段:CLB 健全狀態檢查使用 100.64.0.0/10 網段。如果後端伺服器上的 iptables 或其他第三方安全軟體屏蔽了該網段,健全狀態檢查會失敗,導致 CLB 認為伺服器異常而不轉寄流量。請確保相關規則未屏蔽此網段。

  • 健全狀態檢查視窗期未到:新增後端伺服器後,CLB 需要等待健全狀態檢查通過後才會開始轉寄流量。請稍等片刻後再觀察流量是否正常轉寄。