為了節省成本,有可能將多個應用共用(複用)一個Server Load Balancer執行個體,使用同一個公網IP地址和連接埠對外暴露,但仍希望通過轉寄策略將請求轉寄到對應的應用。本文介紹多應用共用Server Load Balancer執行個體和連接埠時,如何使用網域名稱實現流量的轉寄。
背景資訊
在ECS叢集中,使用同一個連接埠的服務,僅HTTP監聽協議支援流量分發。
SLB支援HTTP協議,支援通過HTTP請求的網域名稱和URL進行流量分發,如下圖所示,SLB的IP地址綁定了abc***.com和xyz***.com,兩個應用所屬的伺服器組分別綁定到abc***.com和xyz***.com,SLB接收到流量後,會根據HTTP請求的網域名稱進行流量分發,如果網域名稱是abc***.com,會轉寄到伺服器組A所屬的應用App1,如果網域名稱是xyz***.com,則會轉寄到伺服器組B所屬的應用App2。

例如有兩個應用:一個提供訂單查詢的功能的應用User,一個提供使用者登入的應用Order,這兩個應用對外提供同一個公網IP地址,且連接埠預設都是 80 。您可以通過為兩個應用設定不同的網域名稱(u.domain.com為應用User的網域名稱,o.domain.com為應用Order的網域名稱),來實現流量分發。

操作流程
下面介紹一下為2個不同的應用綁定同一個SLB,通過配置不同的網域名稱實現流量分發的流程。
建立SLB執行個體edas-test-slb。具體操作,請參見建立執行個體。
在EDAS控制台建立ECS類型的應用spring-cloud-provider,為該應用配置公網負載平衡,監聽協議要選擇HTTP,連接埠為80,將轉寄策略配置為
provider.test.com。為spring-cloud-consumer應用配置公網負載平衡,配置過程與spring-cloud-provider應用類似,監聽協議要選擇HTTP,連接埠同樣為80,只是將轉寄策略配置為
consumer.test.com。
配置完成後,假如SLB的IP地址為123.1.XX.XX,在Linux和macOS下可以通過修改/etc/hosts,添加以下條目進行Host綁定,方便測試。
123.1.XX.XX provider.test.com
123.1.XX.XX consumer.test.com然後可以使用http://provider.test.com訪問spring-cloud-provider應用,使用http://consumer.test.com訪問spring-cloud-consumer應用。
為第一個應用綁定SLB並佈建網域名轉寄策略
為第一個應用綁定Server Load Balancer執行個體,並配置監聽連接埠、虛擬伺服器組及網域名稱轉寄策略。
- 登入EDAS控制台,在左側導覽列單擊。
- 在应用列表頁面的頂部功能表列選擇地區,並在頁面上方選擇微服務空間,在叢集類型列表中選擇ECS叢集,然後在應用列表中單擊目標應用程式名稱。
- 在基本資料頁簽的應用設定地區,單擊負載平衡(公網)右側的添加。說明 如果您已經配置過Server Load Balancer執行個體,則在此處會顯示Server Load Balancer執行個體的IP和連接埠資訊,您可單擊修改進入配置頁面修改Server Load Balancer執行個體資訊,或單擊解除綁定解除與當前Server Load Balancer執行個體的綁定。
在添加負載平衡(公)設定精靈中配置Server Load Balancer執行個體。
在選擇負載平衡頁簽中選擇負載平衡類型為ALB或CLB,然後在負載平衡(公網)的下拉式清單中選擇您建立的SLB執行個體,然後單擊下一步。
在選擇配置監聽頁簽中配置監聽連接埠,然後單擊下一步。
當您負載平衡類型選擇為ALB時,只支援選中已有的監聽連接埠。負載平衡類型為CLB時,有以下兩種情況可選:
如果想使用為選定SLB執行個體配置過的監聽連接埠,選擇選擇已有監聽連接埠,並在下方選擇已有的監聽連接埠。
如果沒有為選定的SLB執行個體配置過監聽連接埠,或想為當前應用配置一個新的監聽連接埠,選擇添加新監聽連接埠,並為該SLB執行個體建立一個監聽。
監聽參數說明:
參數
說明
協議
選擇HTTP。如果負載平衡類型為ALB,請參見添加HTTP監聽。如果負載平衡類型為CLB,請參見添加HTTP監聽
說明負載平衡服務監聽規定了如何將請求轉寄給後端伺服器。EDAS中部署的應用在使用負載平衡時,需要選擇監聽協議。HTTP協議需要對資料內容進行識別,如Web應用、小型的手機遊戲等。
前端連接埠號碼
Server Load Balancer執行個體對外提供服務的連接埠。
重要如果想添加的前端連接埠號碼已經被其他監聽協議佔用,請另外設定一個連接埠號碼,或者需登入SLB控制台刪掉該監聽連接埠後,再在EDAS控制台上重新建立。
健全狀態檢查路徑(URI)
負載平衡檢查後端應用存活狀態的URI。預設為/_ehc.html。請根據應用輸入正確的健全狀態檢查路徑,具體操作,請參見配置和管理CLB健全狀態檢查。
後端連接埠號碼
應用的服務連接埠,不可設定。
在設定管理員組與轉寄策略頁簽中配置SLB執行個體的虛擬伺服器組和基於網域名稱的轉寄策略,然後單擊下一步。
參數
描述
預設伺服器組
預設伺服器組不支援配置轉寄策略,所以在使用網域名稱實現流量分發時,不可以選擇預設伺服器組,只能選擇虛擬伺服器組。
現有虛擬伺服器組
如果想使用為選定的SLB執行個體建立過的虛擬伺服器組,請執行以下操作:
選擇現有虛擬伺服器組,並在下方選擇已有的虛擬伺服器組。
配置轉寄策略。
如果想使用為該虛擬伺服器組配置過的轉寄策略,選擇修改当前虚拟服务器组的转发策略選項,並選中已有轉寄策略。
如果該虛擬伺服器組沒有配置過轉寄策略,或想要為其新增轉寄策略,選擇新增转发策略,並在轉寄策略右側的文字框中輸入欄位名和路徑規則。
建立虛擬伺服器組
如果沒有為選定的SLB執行個體配置過虛擬伺服器組,或想為當前應用配置一個新的虛擬伺服器組,請執行以下操作:
選擇建立虛擬伺服器組,並輸入虛擬伺服器組名稱。
選擇新增转发策略,並在轉寄策略右側的文字框中輸入欄位名和路徑規則。
- 在確定變更頁簽中查看設定的SLB執行個體資訊,無誤後,單擊確認變更。
驗證當前應用通過設定的網域名稱轉寄策略能否正常訪問第一個應用,具體操作,請參見結果驗證。
為第二個應用綁定SLB並佈建網域名轉寄策略
登入EDAS控制台,在ECS叢集應用的基本資料頁簽的應用設定地區,重複為第一個應用綁定SLB並佈建網域名轉寄策略的操作,為第二個應用和第一個應用綁定相同的Server Load Balancer執行個體和監聽連接埠,設定不同於第一個應用的虛擬伺服器組及網域名稱轉寄策略。