為了節省成本,有可能將多個應用共享(復用)一個負載均衡實例,使用同一個公網IP地址和端口對外暴露,但仍希望通過轉發策略將請求轉發到對應的應用。本文介紹多應用共享負載均衡實例和端口時,如何使用域名實現流量的轉發。
背景信息
在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并配置域名轉發策略
為第一個應用綁定負載均衡實例,并配置監聽端口、虛擬服務器組及域名轉發策略。
- 登錄EDAS控制臺,在左側導航欄單擊 。
- 在應用列表頁面的頂部菜單欄選擇地域,并在頁面上方選擇微服務空間,在集群類型列表中選擇ECS集群,然后在應用列表中單擊目標應用名稱。
- 在基本信息頁簽的應用設置區域,單擊負載均衡(公網)右側的添加。說明 如果您已經配置過負載均衡實例,則在此處會顯示負載均衡實例的IP和端口信息,您可單擊修改進入配置頁面修改負載均衡實例信息,或單擊解綁解除與當前負載均衡實例的綁定。
在添加負載均衡(公)配置向導中配置負載均衡實例。
在選擇負載均衡頁簽中選擇負載均衡類型為ALB或CLB,然后在負載均衡(公網)的下拉列表中選擇您創建的SLB實例,然后單擊下一步。
在選擇配置監聽頁簽中配置監聽端口,然后單擊下一步。
當您負載均衡類型選擇為ALB時,只支持選中已有的監聽端口。負載均衡類型為CLB時,有以下兩種情況可選:
如果想使用為選定SLB實例配置過的監聽端口,選擇選擇已有監聽端口,并在下方選擇已有的監聽端口。
如果沒有為選定的SLB實例配置過監聽端口,或想為當前應用配置一個新的監聽端口,選擇添加新監聽端口,并為該SLB實例新建一個監聽。
監聽參數說明:
參數
說明
協議
選擇HTTP。如果負載均衡類型為ALB,請參見添加HTTP監聽。如果負載均衡類型為CLB,請參見添加HTTP監聽
說明負載均衡服務監聽規定了如何將請求轉發給后端服務器。EDAS中部署的應用在使用負載均衡時,需要選擇監聽協議。HTTP協議需要對數據內容進行識別,如Web應用、小型的手機游戲等。
前端端口號
負載均衡實例對外提供服務的端口。
重要如果想添加的前端端口號已經被其他監聽協議占用,請另外設置一個端口號,或者需登錄SLB控制臺刪掉該監聽端口后,再在EDAS控制臺上重新創建。
健康檢查路徑(URI)
負載均衡檢查后端應用存活狀態的URI。默認為/_ehc.html。請根據應用輸入正確的健康檢查路徑,具體操作,請參見配置和管理CLB健康檢查。
后端端口號
應用的服務端口,不可設置。
在配置服務器組與轉發策略頁簽中配置SLB實例的虛擬服務器組和基于域名的轉發策略,然后單擊下一步。
參數
描述
默認服務器組
默認服務器組不支持配置轉發策略,所以在使用域名實現流量分發時,不可以選擇默認服務器組,只能選擇虛擬服務器組。
現有虛擬服務器組
如果想使用為選定的SLB實例創建過的虛擬服務器組,請執行以下操作:
選擇現有虛擬服務器組,并在下方選擇已有的虛擬服務器組。
配置轉發策略。
如果想使用為該虛擬服務器組配置過的轉發策略,選擇修改當前虛擬服務器組的轉發策略選項,并選中已有轉發策略。
如果該虛擬服務器組沒有配置過轉發策略,或想要為其新增轉發策略,選擇新增轉發策略,并在轉發策略右側的文本框中輸入域名和路徑規則。
新建虛擬服務器組
如果沒有為選定的SLB實例配置過虛擬服務器組,或想為當前應用配置一個新的虛擬服務器組,請執行以下操作:
選擇新建虛擬服務器組,并輸入虛擬服務器組名稱。
選擇新增轉發策略,并在轉發策略右側的文本框中輸入域名和路徑規則。
- 在確定變更頁簽中查看設置的SLB實例信息,無誤后,單擊確認變更。
驗證當前應用通過設置的域名轉發策略能否正常訪問第一個應用,具體操作,請參見結果驗證。
為第二個應用綁定SLB并配置域名轉發策略
登錄EDAS控制臺,在ECS集群應用的基本信息頁簽的應用設置區域,重復為第一個應用綁定SLB并配置域名轉發策略的操作,為第二個應用和第一個應用綁定相同的負載均衡實例和監聽端口,設置不同于第一個應用的虛擬服務器組及域名轉發策略。