閱讀1078 返回首頁    go iPhone_iPad_Mac_手機_平板_蘋果apple


如何實現域名 / URL 轉發功能__最佳實踐_負載均衡-阿裏雲

概述

負載均衡除了可以通過一個實例,將用戶的請求轉發到同一組後端服務器上外,還支持為 7 層(HTTP 和 HTTPS)監聽基於域名和URL自定義轉發策略,來進行更高級、更細致的轉發控製。監聽按域名和URL轉發適用於在同一個負載均衡實例下存在多個業務的場景需求。

您可通過創建虛擬服務器組和配置轉發策略實現按域名和URL轉發請求。

虛擬服務器組

負載均衡默認是在實例維度上維護後端服務器組,即實例下的所有監聽都使用相同的後端服務器組。虛擬服務器組允許用戶在監聽維度上個性化定義服務器組,即實例下的不同監聽可使用不同的後端服務器組,可滿足域名和URL轉發個性化的需求。

實例維度

負載均衡默認通過實例維度進行調度,其主要特點為:

  • 同一監聽,前端端口和後端端口可以不同。
  • 同一監聽,後端端口固定指向相應實例所有後端服務器上的相同端口。

下圖顯示了負載均衡實例維度的調度。

實例維度

監聽維度

虛擬服務器組則通過監聽維度進行調度,其主要特點為:

  • 同一監聽,前端端口和後端端口可以不同。
  • 不同虛擬服務器組,可以包含相同或不同服務器。
  • 同一虛擬服務器組內,後端 ECS 可以由不同端口提供服務。
  • 同一監聽,後端端口可以指向不同服務器的不同端口。
  • 支持基於域名和 URL 配置個性化轉發策略,更靈活地適配業務需求。

下圖顯示了虛擬服務器組監聽維度的調度。

監聽維度

配置負載均衡監聽實現按域名和 URL 轉發

您可按照以下方法配置負載均衡監聽,實現按域名和 URL 轉發:

  1. 創建、配置具體承載業務的後端 ECS,明確業務服務端口。

  2. 創建虛擬服務器組,選擇步驟 1 已準備好的服務器,指定服務端口,並根據服務器規格等因素配置權重。

    如何創建虛擬服務器組請參考 創建虛擬服務器組

  3. 根據業務情況,創建 HTTP 或 HTTPS 協議類型的監聽,並配置監聽。配置監聽時,開啟 使用虛擬服務器組,並選擇步驟 2 中創建好的虛擬服務器組。在配置健康檢查時,建議不設置檢查端口,後端會匹配相應的端口進行健康檢查;若設置了檢查端口,後端會對虛擬服務器組內的所有 ECS 的固定端口進行健康檢查。

    如何創建和配置監聽,請參考 配置監聽

  4. 配置基於域名及 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

  上一篇:go 結合雲解析實現跨地域負載均衡__最佳實踐_負載均衡-阿裏雲
  下一篇:go 資源授權定義__RAM資源授權_API 參考_負載均衡-阿裏雲