Serverless 應用引擎 SAE(Serverless App Engine)利用七層負載均衡能力,將請求流量按照轉發規則分發到指定應用實例上。本文介紹在使用SAE網關路由功能前,需要了解的負載均衡ALB的相關約束以及轉發動作中的重寫配置。
約束
SAE的負載均衡實質是七層的負載均衡服務,通過為您配置ALB實例的監聽來實現。
從ALB產品的角度而言,您在ALB配置行為和SAE側的ALB配置行為不作區分,但是ALB側對SAE側的ALB配置起不到保護作用,允許在ALB側篡改或破壞SAE所維護的配置,可能導致業務不符預期。
對于SAE配置的一條網關路由,SAE會自動創建相關的監聽或服務器組,不建議您進行任何的修改或引用,否則對您的業務有一定的影響。如果您需要進行修改,請檢查操作的合法性,合法性如下表所示。
“Y”表示支持,“N”表示不支持,“-”表示有特殊要求。
類型 | 修改項 | 合法性 | 說明 |
實例 | 實例名稱 | Y | 無 |
實例標簽 | - | 禁止以下操作:
| |
EIP綁定 | Y | 無 | |
升降配 | Y | 無 | |
監聽 | 監聽名稱 | N | 無 |
虛擬服務器組ID | N | 無 | |
規則 | N |
| |
訪問控制 | N | 開啟訪問控制會導致SAE規則無法同步。 | |
| N | 在ALB側修改的配置,會被SAE側覆蓋為默認值。 | |
證書配置 | N | 必須在SAE側配置修改,如果在ALB側修改,會被SAE的配置覆蓋。 | |
虛擬服務器組 | 名稱 | N | 無 |
標簽 | N | 修改標簽會導致服務器組重建。 | |
后端服務器(權重、實例、端口等) | N |
| |
路由規則 | 所有配置修改 | N | 無 |
重寫配置說明
路徑重寫原理
路徑匹配:客戶端發送請求,并匹配到某一條路徑轉發規則的正則表達式。
提取與替換:按照正則表達式的規范提取,將前三個半角圓括號
( )
提取出來的內容分別保存至${1}
、${2}
、${3}
中,用于在轉發動作的重寫或重定向路徑中替換。拼接:按照轉發動作中重寫或重定向路徑的配置,對其中的
${1}
、${2}
、${3}
進行值的替換,最終拼接成重寫或重定向的實際路徑。
注意事項
轉發條件中正則表達式中包含的半角圓括號
( )
需要與轉發動作中重寫或重定向路徑中$變量的個數保持一致。轉發動作中重寫的路徑中需要包含
${1}
、${2}
、${3}
中的一個或多個,且這三個變量不支持使用其余字符代替。
配置和替換示例
編號 | 步驟 | 示例 |
1 | 配置轉發規則中的轉發條件和轉發動作。 |
|
2 | 客戶端發送請求,并匹配路徑。 |
|
3 | 提取與替換 | 按照正則表達式規范,轉發條件路徑中的兩個
|
4 | 拼接路徑 | 后端服務器接收到的路徑: |