傳統負載均衡CLB默認將所有流量指向監聽配置的后端服務器組,可能導致資源分配不均、性能下降和運維復雜。隨著業務擴展,這種配置無法滿足多樣化需求。通過配置CLB監聽的轉發策略,可以將流量引導至指定后端服務器組,實現流量的精細化管理和服務隔離,從而提升資源利用率,保障服務穩定性并優化用戶體驗。
功能簡介
CLB監聽的轉發策略允許您基于域名和URL路徑將接收到的客戶端請求精準地分配到不同的后端服務器上,以實現高效、合理的流量分發。
關鍵特性
域名轉發策略
匹配模式:支持精確匹配與通配符匹配(包括單級與多級通配符),如
www.aliyun.com
為精確匹配,*.aliyun.com
、*.market.aliyun.com
為通配符匹配。匹配優先級:遵循精確匹配 > 小范圍通配符 > 大范圍通配符的原則,確保最精確的規則優先執行。
下表展示了匹配優先級的示例,其中 “?” 表示匹配,“×” 表示不匹配。
模式
請求測試URL
配置的轉發域名策略
www.aliyun.com
*.aliyun.com
*.market.aliyun.com
精確匹配
www.aliyun.com
?
×
×
泛域名匹配
market.aliyun.com
×
?
×
info.market.aliyun.com
×
×
?
URL路徑轉發
匹配邏輯:基于URL路徑的前綴最長匹配,如配置/abc與/abcd,請求/abcde時將優先匹配/abcd規則。
策略組合:可在同一監聽下配置多條策略,結合域名與URL路徑,實現復雜流量分發場景,如區分讀寫請求至不同服務器組。
工作原理
您可以在一個監聽下添加多條轉發策略,每條轉發策略關聯不同的虛擬服務器組。匹配策略如下圖所示。當您沒有配置任何轉發策略的時候,負載均衡統一將請求轉發至監聽配置的默認服務器組。 當您配置了轉發策略的時候,負載均衡會優先匹配轉發策略中的域名或者路徑,如果可以匹配到,則轉發至轉發策略中的服務器組,如果無法匹配到,則轉發至監聽配置的默認服務器組。
適用場景
微服務架構:在微服務架構設計中,應用程序由多個獨立的子服務組成,這些子服務各自部署在不同的實例或容器上,通過協同工作完成整體應用功能。采用基于路徑的智能路由機制,確??蛻舳苏埱竽軌虮痪_地分配至處理對應業務邏輯的服務實例。例如,在電商平臺上,用戶的認證請求、訂單處理請求和支付請求,會依據HTTP請求中的URL路徑分別被智能路由到認證服務、訂單服務和支付服務的對應實例上處理。
讀寫分離:在處理高并發和對數據一致性要求嚴格的場景下,如訂單處理服務,采用讀寫分離策略進一步優化服務性能與數據安全性。讀操作和寫操作分別由不同的數據庫實例或集群處理。讀取操作被路由到讀數據庫,而寫入操作則定向到寫數據庫。
多租戶應用:在多租戶應用的場景中,為了實現不同租戶間服務的隔離與個性化,需要為不同的租戶提供獨立的環境。例如,通過創建租戶專屬的子域名來區分不同租戶的入口,同時結合路徑來進一步細化服務功能。這樣,不僅可以確保每個租戶的數據安全和隱私,還能讓每個租戶擁有定制化的用戶體驗和界面。
使用限制
僅7層監聽HTTP或HTTPS支持配置轉發策略。
轉發策略所指向的后端服務器組僅支持虛擬服務器組。
一個HTTP或HTTPS監聽可添加的域名和URL轉發規則數量不超過40,具體請參考使用限制。
場景示例
某教育平臺希望通過單一域名提供多樣化的在線學習服務,包括視頻課程和在線題庫。視頻服務需要高帶寬和流媒體處理能力,而題庫服務則需要計算密集和快速響應。最初,所有服務在一個服務器組上部署,導致資源分配不均,在視頻高峰期影響題庫訪問速度,用戶體驗受損。尤其是在用戶訪問量激增時,服務器負載過高,無法保證服務穩定運行。
在這種場景下,平臺利用阿里云CLB配置了相同域名下不同URL路徑的流量轉發策略。如下圖所示,/video/的請求轉發至視頻服務器組RS1,確保視頻服務獲得足夠的帶寬和處理能力。/exam/的請求轉發至題庫服務器組RS2,優化計算資源以快速響應查詢和提交操作。通過這種方式,實現了精準路由,確保每個子服務都能高效、獨立地運行。
前提條件
您已在華東2(上海)地域創建了專有網絡VPC1,并分別在可用區E和可用區G創建了一個交換機VSW1和VSW2。
您已分別在VSW1和VSW2創建了ECS01和ECS02實例,且ECS01和ECS02實例中部署了應用服務。注意安全組中需要放通應用服務所使用的端口號。
本文ECS01和ECS02部署測試應用示例如下:
ECS01部署命令示例
yum install -y nginx systemctl start nginx.service mkdir /usr/share/nginx/html/video cd /usr/share/nginx/html/video echo "Hello World ! This is video service." > index.html
ECS02部署命令示例
yum install -y nginx systemctl start nginx.service mkdir /usr/share/nginx/html/exam cd /usr/share/nginx/html/exam echo "Hello World ! This is exam service." > index.html
您已創建CLB實例。
您已通過創建和管理CLB虛擬服務器組為CLB實例創建了2個虛擬服務器組RS1和RS2,并在RS1中添加服務器ECS01,在RS2中添加服務器ECS02。后端服務器端口的設置與部署應用服務的端口保持一致,本文使用Nginx服務的默認端口號80。
操作步驟
步驟一:配置轉發策略
在頂部菜單欄,選擇目標CLB實例所屬地域。
在實例管理頁面,單擊目標實例ID鏈接。
在監聽頁簽,找到目標監聽,然后在目標監聽操作列單擊配置轉發策略。
在添加轉發策略面板,根據以下信息配置轉發策略,配置完成后單擊添加轉發策略。
域名:您已經注冊并完成備案的自有域名。
URL:您的請求路徑。
說明如果請求的URL路徑中包含特殊字符,您需要使用URL特殊字符轉義編碼。例如,如果配置的轉發策略使用包含特殊字符“/#/”的URL路徑,那么在訪問對應的服務時,需要使用特殊字符井號(#)的轉義編碼“%23”,即請求的URL路徑中必須是“/%23/”,這樣才能按設定的轉發規則轉發請求。
步驟二:配置健康檢查
HTTP健康檢查默認由負載均衡系統向該服務器應用配置的缺省首頁發起HTTP請求。 如果您用來進行健康檢查的頁面并不是應用服務器的缺省首頁,需要指定具體的檢查路徑。
在實例管理頁面,找到目標CLB實例,然后單擊目標實例ID。
在監聽頁簽,在監聽的操作列單擊配置轉發策略。
在轉發策略面板,轉發策略列表下,找到目標轉發規則,單擊編輯。若有多條轉發規則需要配置可重復此操作。
在編輯轉發策略面板,開啟轉發規則高級配置,配置健康檢查路徑,此處可配置轉發規則中的URL路徑,以URL為/video為例,需要完成如下配置。
步驟三:設置域名解析
對于非阿里云注冊域名,需先將域名添加到云解析控制臺,才可以進行域名解析設置。
如果您的CLB實例為私網類型,需先為其綁定彈性公網IP(EIP),隨后配置A記錄將域名解析指向該EIP實現公網訪問。
在左側導航欄,選擇
。在實例管理頁面,選擇目標實例,并復制目標實例的服務地址。
執行以下步驟添加A解析記錄。
登錄域名解析控制臺。
在權威域名解析頁面,找到目標域名,在操作列單擊解析設置。
在解析設置頁面,單擊添加記錄。
在添加記錄面板配置以下信息,其他參數可保持默認值或根據實際情況修改,完成后單擊確定。
配置
說明
記錄類型
在下拉列表中選擇A。
主機記錄
您的域名的前綴。
說明創建域名為根域名時,主機記錄為@。
記錄值
輸入域名對應的A地址,即您復制的CLB實例的服務地址。
步驟四:訪問測試
使用瀏覽器訪問http://<域名>/<URL>/
查看響應結果,驗證是否將請求路由到對應的服務器組。
訪問視頻服務http://www.example.com/video/,查看請求是否路由到視頻服務虛擬服務器組RS1。
訪問題庫服務
http://www.example.com/exam/
,查看請求是否路由到題庫服務虛擬服務器組RS2。
相關問題
CLB同域名不同路徑的轉發策略是否支持路徑的重定向?
不支持。CLB轉發策略為流量的轉發。如果您需要配置轉發路徑重定向可考慮使用應用型負載均衡ALB,具體可參考配置監聽轉發規則。
配置多路徑轉發后,健康檢查狀態為什么異常了?
負載均衡在執行健康檢查時,不關注轉發策略,而是按照監聽器上配置的健康檢查路徑(默認使用根路徑)進行檢查。當您的后端服務需要根據不同的路徑來響應不同的請求時,如果健康檢查仍然按照默認或不匹配的路徑進行,就可能導致健康檢查失敗。您可以根據需要在監聽的轉發規則中配置健康檢查路徑。
配置域名轉發策略后會產生什么計費項嗎?
配置域名轉發策略本身不會產生計費項,如果您的CLB實例為私網類型,綁定EIP變更為公網CLB實例,會產生公網網絡費。具體計費可參考CLB產品計費。
相關文檔
如果您需要為CLB配置多個HTTPS域名,可參考單CLB實例配置多域名HTTPS網站。
若您當前的應用系統正采用HTTP協議進行通信,有意實現向HTTPS安全協議的平穩遷移,可參考使用CLB將HTTP訪問重定向至HTTPS。
如果您需要將CLB平滑遷移到ALB,可參考CLB七層監聽一鍵遷移ALB最佳實踐和CLB七層監聽手動遷移ALB最佳實踐。