1078
iPhone_iPad_Mac_手機_平板_蘋果apple
如何實現域名 / URL 轉發功能__最佳實踐_負載均衡-阿裏雲
概述
負載均衡除了可以通過一個實例,將用戶的請求轉發到同一組後端服務器上外,還支持為 7 層(HTTP 和 HTTPS)監聽基於域名和URL自定義轉發策略,來進行更高級、更細致的轉發控製。監聽按域名和URL轉發適用於在同一個負載均衡實例下存在多個業務的場景需求。
您可通過創建虛擬服務器組和配置轉發策略實現按域名和URL轉發請求。
虛擬服務器組
負載均衡默認是在實例維度上維護後端服務器組,即實例下的所有監聽都使用相同的後端服務器組。虛擬服務器組允許用戶在監聽維度上個性化定義服務器組,即實例下的不同監聽可使用不同的後端服務器組,可滿足域名和URL轉發個性化的需求。
實例維度
負載均衡默認通過實例維度進行調度,其主要特點為:
- 同一監聽,前端端口和後端端口可以不同。
- 同一監聽,後端端口固定指向相應實例所有後端服務器上的相同端口。
下圖顯示了負載均衡實例維度的調度。
監聽維度
虛擬服務器組則通過監聽維度進行調度,其主要特點為:
- 同一監聽,前端端口和後端端口可以不同。
- 不同虛擬服務器組,可以包含相同或不同服務器。
- 同一虛擬服務器組內,後端 ECS 可以由不同端口提供服務。
- 同一監聽,後端端口可以指向不同服務器的不同端口。
- 支持基於域名和 URL 配置個性化轉發策略,更靈活地適配業務需求。
下圖顯示了虛擬服務器組監聽維度的調度。
配置負載均衡監聽實現按域名和 URL 轉發
您可按照以下方法配置負載均衡監聽,實現按域名和 URL 轉發:
創建、配置具體承載業務的後端 ECS,明確業務服務端口。
創建虛擬服務器組,選擇步驟 1 已準備好的服務器,指定服務端口,並根據服務器規格等因素配置權重。
如何創建虛擬服務器組請參考 創建虛擬服務器組。
根據業務情況,創建 HTTP 或 HTTPS 協議類型的監聽,並配置監聽。配置監聽時,開啟 使用虛擬服務器組,並選擇步驟 2 中創建好的虛擬服務器組。在配置健康檢查時,建議不設置檢查端口,後端會匹配相應的端口進行健康檢查;若設置了檢查端口,後端會對虛擬服務器組內的所有 ECS 的固定端口進行健康檢查。
如何創建和配置監聽,請參考 配置監聽。
配置基於域名及 URL 的轉發策略。
如何配置轉發策略,請參考 配置轉發策略。
轉發規則判斷機製
對於來自負載均衡實例前端的相關請求,判斷規則如下:
- 如果能匹配到相應監聽關聯的轉發策略,則按轉發策略,將請求轉發到對應的虛擬服務器組;
- 如果未匹配,而對應監聽啟用並配置了虛擬服務器組,則將請求轉發到對應的虛擬服務器組;
- 如果均未匹配,則轉發到負載均衡實例後端所有 ECS 。端口為監聽配置時指定的 後端端口。
下圖顯示了轉發規則的判斷流程。
例如,您添加了三個虛擬服務器組,一個為“Test1”,一個為“Test2”,一個為“Test3”。
在創建 HTTP 監聽時,可以選擇“使用虛擬服務器組”Test3,如下圖所示:
在配置監聽轉發策略時,設置下圖示例中的轉發策略規則:
基於如上的設置,其用戶訪問流量轉發判斷邏輯如下:
當該監聽的流量訪問的是 aliyun.com/image 時,將會被轉發到 Test2 虛擬服務器組內相應的後端服務器端口上;當流量訪問的是 baidu.com/134478 時,將會被轉發到 Test1 這個虛擬服務器組內相應的後端服務器端口上。
當該監聽的流量訪問的都不是以上這兩個鏈接時,將會被轉發到監聽的“虛擬服務器組” Test3 內相應的後端服務器端口上。
若該監聽上沒有設置“虛擬服務器組”,那麼該監聽的流量則會被轉發到“已添加的後端服務器”組內。
注意:當您需要根據“相同的域名+不同的URL”進行轉發時,建議您配置一個默認轉發策略(URL 留空),以免未匹配到的其它 URL 訪問出錯。
健康檢查處理機製
以下表格對比描述了三個維度的健康檢查機製:
維度 | 健康檢查配置 | 健康檢查目標服務器 |
---|---|---|
後端服務器 | 使用配置監聽時的健康檢查配置 | 所有後端 ECS |
虛擬服務器組 | 使用配置監聽時的健康檢查配置 | 相應虛擬服務器組包含的服務器 |
轉發策略 | 使用配置監聽時的健康檢查配置 | 相應虛擬服務器組包含的服務器 |
注意:
由於虛擬服務器組中可以對 ECS 配置不同的端口,因此在配置健康檢查時不要設置檢查端口,否則會導致采用了不一致端口承載服務的服務器健康檢查失敗。
測試示例
3 台後端 ECS 服務器配置:
服務器 | 監聽端口 |
---|---|
服務器_80 | 80 |
服務器_8080 | 8080 |
服務器_8180 | 8180 |
虛擬服務器組配置:
服務器組名 | 包含的服務器及服務端口 |
---|---|
apache_80 | 服務器_80端口 80 |
apache_8080 | 服務器_8080端口 8080 |
apache_8180 | 服務器_8180端口 8180 |
監聽配置:
前端端口 | 後端端口 | 啟用虛擬服務器組 | 對應虛擬服務器組 |
---|---|---|---|
80 | 80 | 是 | apache_80 |
8080 | 8080 | 否 | 無 |
80 端口轉發策略配置:
規則名稱 | 域名 | URL | 對應虛擬服務器組 |
---|---|---|---|
前端端口 | www.8180.com | 空 | apache_8180 |
其它配置:
配置項 | 配置值 |
---|---|
負載均衡 VIP | 118.178.168.69 |
本地 hosts 綁定 | 118.178.168.69 www.8180.com |
測試效果:
測試 URL | 訪問到的後端服務器 | 說明 |
---|---|---|
https://118.178.168.69 | 服務器_80 | 未匹配到轉發策略,但匹配到了監聽的虛擬服務器組配置。 |
https://www.8180.com/ | 服務器_8180 | 匹配到轉發策略。 |
https://118.178.168.69:8080/ | 服務器_8080 | 未匹配到轉發策略和虛擬服務器組配置,轉發到後端唯一健康檢查成功的服務器。 |
最後更新:2016-12-20 13:19:05
上一篇:
結合雲解析實現跨地域負載均衡__最佳實踐_負載均衡-阿裏雲
下一篇:
資源授權定義__RAM資源授權_API 參考_負載均衡-阿裏雲
雲服務器 ECS網絡和安全性內網
AutoSnapshotExecutionStatusType__數據類型_API 參考_雲服務器 ECS-阿裏雲
查看診斷報告__實例診斷_性能管理_用戶指南(RDBMS)_數據管理-阿裏雲
域名級別__附錄_API文檔_雲解析-阿裏雲
RDS插件數據庫運維__最佳實踐_Eclipse 插件-阿裏雲
缺失索引建議__性能優化_API 參考_雲數據庫 RDS 版-阿裏雲
域名解析防護如何使用?__雲解析企業版_產品相關問題_雲解析-阿裏雲
中毒導致 SSH 服務運行異常,出現如下錯誤:fatal: mm_request_send: write: Broken pipe__遠程登錄 (SSH)_Linux操作運維問題_雲服務器 ECS-阿裏雲
路由器和路由表__網絡_用戶指南_專有網絡 VPC-阿裏雲
附錄二 SQL函數表__附錄_使用手冊_分析型數據庫-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲