為了節省成本,有可能將多個應用共享(復用)一個負載均衡實例,使用同一個公網IP地址和域名對外暴露,但仍希望通過轉發策略將請求轉發到對應的應用。本文介紹多應用共享負載均衡實例時,如何使用端口實現流量的轉發。
背景信息
在ECS集群中,使用同一個端口的服務,僅HTTP監聽協議支持流量分發。
多應用共享負載均衡實例最簡單的方式是為不同的服務器組配置不同的監聽端口。如下圖所示,兩個應用所屬的服務器組分別監聽80和81端口,CLB接收到流量后,會根據目的端口進行流量分發,如果目的端口是80端口,會轉發到服務器組A所屬的應用App1,如果目的端口是81端口,則會轉發到服務器組B所屬的應用App2。
例如有兩個應用:一個提供訂單查詢的功能的應用User,一個提供用戶登錄的應用Order,這兩個應用對外提供同一個公網IP地址,并且都綁定在一個域名上。您可以通過為兩個應用綁定不同的監聽端口來實現流量分發。
操作流程
下面介紹為2個不同的應用綁定同一個CLB,通過配置不同的端口號實現流量分發的流程。
創建一個CLB實例edas-test-clb。具體操作,請參見創建實例。
在EDAS控制臺創建ECS類型的應用spring-cloud-provider,參考應用獨享負載均衡實例中的同名應用的配置過程為該應用配置公網負載均衡,監聽協議依然選擇TCP,端口為80。
為spring-cloud-consumer應用配置公網負載均衡,配置過程與spring-cloud-provider應用類似,只是在配置端口時將端口配置為81。
配置完成后,假如CLB的IP地址為
123.1.XX.XX
,可以使用http://123.1.XX.XX:80
訪問spring-cloud-provider應用,使用http://123.1.XX.XX:81
訪問spring-cloud-consumer應用。
為第一個應用綁定CLB并配置監聽端口
在使用一個CLB實例的不同端口將請求轉發至不同的應用的場景下,您需要先為一個應用綁定CLB實例,并設置監聽端口。
- 登錄EDAS控制臺,在左側導航欄單擊 。
- 在應用列表頁面的頂部菜單欄選擇地域,并在頁面上方選擇微服務空間,在集群類型列表中選擇ECS集群,然后在應用列表中單擊目標應用名稱。
- 在基本信息頁簽的應用設置區域,單擊負載均衡(公網)右側的添加。說明 如果您已經配置過負載均衡實例,則在此處會顯示負載均衡實例的IP和端口信息,您可單擊修改進入配置頁面修改負載均衡實例信息,或單擊解綁解除與當前負載均衡實例的綁定。
在添加負載均衡(公)配置向導中配置負載均衡實例。
在選擇負載均衡頁簽中選擇負載均衡類型為CLB,然后在負載均衡(公網)的下拉列表中選擇您創建的CLB實例,然后單擊下一步。
在選擇配置監聽頁簽中配置監聽端口,然后單擊下一步。
如果想使用為選定CLB實例配置過的監聽端口,選擇選擇已有監聽端口,并在下方選擇已有的監聽端口。
如果沒有為選定的CLB實例配置過監聽端口,或想為當前應用配置一個新的監聽端口,選擇添加新監聽端口,并為該CLB實例新建一個監聽。
監聽參數說明:
參數
說明
協議
選擇TCP。關于監聽的更多信息以及如何創建TCP監聽的具體操作,請參見添加TCP監聽。
說明TCP協議適用于注重可靠性,對數據準確性要求高,速度可以相對較慢的場景,如文件傳輸、發送或接收郵件、遠程登錄。當您選擇的CLB實例的監聽端口所使用的協議為TCP時,無法綁定轉發策略。
前端端口號
負載均衡實例對外提供服務的端口。
重要如果想添加的前端端口號已經被其他監聽協議占用,請另外設置一個端口號,或者需登錄SLB控制臺刪掉該監聽端口后,再在EDAS控制臺上重新創建。
后端端口號
應用的服務端口,不可設置。
在配置服務器組與轉發策略頁簽中配置SLB實例的虛擬服務器組,然后單擊下一步。
參數
描述
默認服務器組
默認服務器組不支持配置轉發策略,所以在使用端口實現流量分發時,不可以選擇默認服務器組,只能選擇虛擬服務器組。
現有虛擬服務器組
如果想使用為選定的SLB實例創建過的虛擬服務器組,選擇現有虛擬服務器組,并在下方選擇已有的虛擬服務器組。
說明同一個虛擬服務器組只允許與一個應用或應用分組進行綁定。
新建虛擬服務器組
如果沒有為選定的SLB實例配置過虛擬服務器組,或想為當前應用配置一個新的虛擬服務器組,選擇新建虛擬服務器組,并輸入虛擬服務器組名稱。
- 在確定變更頁簽中查看設置的SLB實例信息,無誤后,單擊確認變更。
驗證當前應用的綁定的負載均衡實例IP和端口能否正常訪問第一個應用,具體操作,請參見結果驗證。
為第二個應用綁定CLB并配置監聽端口
登錄EDAS控制臺,在ECS集群應用的基本信息頁簽的應用設置區域,重復為第一個應用綁定CLB并配置監聽端口的操作,為第二個應用綁定同一個CLB實例,并設置不同于第一個應用的監聽端口。