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 | 拼接路径 | 后端服务器接收到的路径: |