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 |
在ALB侧修改的配置,会被SAE侧覆盖为默认值。 |
|
|
证书配置 |
N |
必须在SAE侧配置修改,如果在ALB侧修改,会被SAE的配置覆盖。 |
|
|
虚拟服务器组 |
名称 |
N |
无 |
|
标签 |
N |
修改标签会导致服务器组重建。 |
|
|
后端服务器(权重、实例、端口等) |
N |
|
|
|
路由规则 |
所有配置修改 |
N |
无 |
重写配置说明
路径重写原理
-
路径匹配:客户端发送请求,并匹配到某一条路径转发规则的正则表达式。
-
提取与替换:按照正则表达式的规范提取,将前三个半角圆括号
( )提取出来的内容分别保存至${1}、${2}、${3}中,用于在转发动作的重写或重定向路径中替换。 -
拼接:按照转发动作中重写或重定向路径的配置,对其中的
${1}、${2}、${3}进行值的替换,最终拼接成重写或重定向的实际路径。
注意事项
-
转发条件中正则表达式中包含的半角圆括号
( )需要与转发动作中重写或重定向路径中$变量的个数保持一致。 -
转发动作中重写的路径中需要包含
${1}、${2}、${3}中的一个或多个,且这三个变量不支持使用其余字符代替。
配置和替换示例
|
编号 |
步骤 |
示例 |
|
1 |
配置转发规则中的转发条件和转发动作。 |
|
|
2 |
客户端发送请求,并匹配路径。 |
|
|
3 |
提取与替换 |
按照正则表达式规范,转发条件路径中的两个
|
|
4 |
拼接路径 |
后端服务器接收到的路径:
拼接路径重写生效后,请求路径 /sys/ccc/bbb/aaa 经变量拼接重写,后端 NGINX 实际收到的 URI 为 /ccc/bbb。
|