如果您的業務請求需要分發給其他服務或者應用,您可以為應用配置網關路由功能,實現請求路由分發。本文介紹如何通過應用型負載均衡ALB為您的應用設置路由規則。
前提條件
背景信息
負載均衡 SLB(Server Load Balancer)是一種流量分發服務,旨在通過將流量平衡地分配到后端多個服務器上,來擴展應用的處理能力并提升系統整體的可用性,同時消除潛在的單點故障。應用型負載均衡ALB作為SLB產品家族的一員,專門針對HTTP、HTTPS和QUIC等應用層協議提供服務。ALB不僅具備高度彈性和大規模應用層流量管理能力,還能處理復雜的業務路由需求,并與云原生服務緊密集成,成為阿里云官方推薦的云原生Ingress網關解決方案。更多信息,請參見負載均衡SLB產品家族介紹。
使用場景
單應用或多應用使用相同域名但存在不同路徑流量轉發。
單應用或多應用由不同域名流量轉發,即不同域名解析的訪問IP地址是同一個。
網關路由配置完成后,您可以通過<域名>:<訪問端口/Path>
訪問相應的后端服務或者應用。
創建網關路由
登錄SAE控制臺。
在左側導航欄,單擊命名空間,在頂部菜單欄選擇地域,然后在命名空間頁面,單擊目標命名空間名稱。
在目標命名空間頁面,在左側導航欄單擊網關路由,然后單擊創建網關路由。
在創建路由頁面,按照下表說明完成參數設置,然后單擊保存。
配置項
配置說明
路由名稱
自定義路由名稱。
網絡類型
選擇網絡類型:
公網:通過公網網關轉發的請求,按照實際轉發流量計費。
私網:通過私網網關轉發的請求不計費,僅在當前VPC內部轉發。
網關類型
選擇ALB 應用型負載均衡。
ALB 實例
單擊ALB 實例下面的下拉框,選擇ALB實例,您也可以單擊下拉框右側的創建 ALB 實例,創建ALB實例。具體操作,請參見創建應用型負載均衡。
前端協議類型
選擇請求轉發協議:
HTTP:適用于需要對數據內容進行識別的應用,如移動應用和小型手機游戲等。
HTTPS:適用于需要加密傳輸的應用。
訪問端口
自定義訪問端口,端口范圍為0~65535。
高級配置
展開高級設置區域,可以設置以下參數:
連接請求超時時間:設置請求后端服務器的超時時間(可以選擇的范圍為1~180秒)。如果后端服務器在指定時間內未響應,則會返回HTTP 504錯誤碼。
連接空閑超時時間:設置無請求時的連接時長(可以選擇的范圍為1~60秒)。如果在指定的空閑時間內無新的請求,負載均衡會暫時中斷當前連接,直到下次請求來臨時重新建立新的連接。
TLS安全策略:僅當前端協議類型選擇為HTTPS時,才支持設置TLS安全策略。TLS安全策略包括可選的TLS協議版本和配套的加密算法套件。加密算法套件是由SSL/TLS握手期間協商的安全設置所使用的算法組合。
附加HTTP頭字段:選擇以下特定的HTTP頭部字段以獲取特定的信息。
開啟通過X-Forwarded-For頭字段獲取來訪者客戶端IP:字段格式為
X-Forwarded-For: <client-ip-address>, <proxy1>, <proxy2>, …
。默認開啟
X-Forwarded-For
頭字段。ALB如何獲取客戶端真實IP教程,請參見通過ALB獲取客戶端真實IP。
通過SLB-ID頭字段獲取負載均衡實例ID:字段格式為
SLB-ID
。通過X-Forwarded-Proto頭字段獲取負載均衡實例的監聽協議:字段格式為
X-Forwarded-Proto: <originatingProtocol>
。通過X-Forwarded-Port頭字段獲取負載均衡實例的監聽端口:字段格式為
X-Forwarded-Port: <port>
。通過X-Forwarded-Client-srcport頭字段獲取負載均衡實例客戶端的端口:字段格式為
X-Forwarded-Client-srcport: <port>
。
自定義轉發策略
您可以根據實際需求配置轉發策略,支持將前端請求轉發到后端服務,或重定向到指定的目標策略。
轉發:可以將前端請求轉發至指定的后端應用和容器端口上。您也可以添加重寫策略。詳細的配置方法,請參見配置域名和路徑的轉發規則。
域名:輸入要轉發的請求域名。如果不填寫,則默認對所有域名生效。您需要提前配置域名解析,才可以實現通過域名訪問應用,請參見為ALB配置CNAME域名解析。
訪問端口:默認是上一步驟設置的訪問端口,不支持設置。
Path:輸入終端訪問的路徑,不可為空。
后端應用:選擇接收轉發請求的應用,該應用須與轉發請求的應用在同一個命名空間內。
容器端口:設置訪問后端應用的容器端口。
重寫策略:轉發前端請求到后端應用時,您可以將原請求中的路徑進行重寫。例如,希望將前端請求路徑/AAA/a、/AAA/b等轉發到后端應用時重寫為/a、/b等,可以將Path設置為/AAA/(.*),重寫策略中將路徑設置為/${1}。
重定向:可以將前端請求重定向到指定的協議、域名和訪問端口上。也可以單擊展開,配置更詳細的重定向策略,包括Path、查詢和狀態碼。
說明在同一個負載均衡實例內,監聽端口不可重復。
您也可以單擊+ 添加規則,添加同一域名下的自定義轉發策略的規則。
您也可以單擊+ 添加域名,添加其他域名的自定義轉發策略的規則。
默認轉發策略
ALB 實例:默認上面步驟選擇的ALB實例,不支持設置。
訪問端口:默認選擇上面步驟設置的訪問端口,不支持設置。
后端應用:選擇接收轉發請求的應用,該應用須與轉發請求的應用在同一個命名空間內。
容器端口:設置訪問后端應用的容器端口。
說明推薦設置默認轉發策略,為所有未匹配上自定義轉發策略的請求指定默認的轉發策略,如果不設置會導致訪問報錯。
結果驗證。
方式一:登錄負載均衡管理控制臺,在ALB實例頁面,查看監聽是否已經配置。
方式二:通過
<域名>:<訪問端口/Path>
訪問相應的服務或應用,查看是否按照已配置好的轉發策略進行了轉發,以驗證配置是否生效。
管理路由規則
創建路由規則后,您可以在網關路由頁面查看轉發策略、編輯、刪除網關路由,以及查看相關事件。