SAE利用七层负载均衡能力,将请求流量按照转发规则分发到指定应用实例上。本文介绍在使用SAE网关路由功能前,需要了解的负载均衡ALB的相关约束以及转发动作中的重写配置。

约束

SAE的负载均衡实质是7层的负载均衡服务,通过为您配置ALB实例的监听来实现。

从ALB产品侧的角度来讲,您在ALB配置行为和SAE侧的ALB配置行为不作区分,但是ALB侧对SAE侧的ALB配置起不到保护作用,允许在ALB侧篡改或破坏SAE所维护的配置,可能导致业务不符预期。

对于SAE配置的一条网关路由,SAE会自动创建相关的监听或服务器组,不建议您进行任何的修改或引用,否则对您的业务有一定的影响。如果您需要进行修改,请检查操作的合法性,合法性如下表所示。

类型修改项合法性说明
实例实例名称Y
实例标签-禁止以下操作:
  • 更改SAE创建的标签。
  • 删除SAE创建的标签。
EIP绑定Y
升降配Y
监听监听名称N
虚拟服务器组IDN
规则N
  • 禁止修改SAE侧维护的规则。
  • 允许添加自定义规则(不能依赖规则之间的顺序),SAE的规则可能会出现在第一位或者最后一位。
  • 不允许自定义规则指向SAE的服务器组,因为SAE的服务器组会重建。
访问控制N开启访问控制会导致SAE规则无法同步。
  • 连接空闲超时时间
  • 连接请求超时时间
  • 数据压缩
  • 附加HTTP头字段
  • ……
N在ALB侧修改的配置,会被SAE侧覆盖为默认值。
证书配置N必须在SAE侧配置修改,如果在ALB侧修改,会被SAE的配置覆盖。
虚拟服务器组名称N
标签N修改标签会导致服务器组重建。
后端服务器(权重、实例、端口等)N
  • 禁止删除SAE的IP。
  • 禁止修改SAE的IP对应的端口和权重。
  • 无法添加ECS的IP,添加后会被SAE移除。
路由规则所有配置修改N

重写配置说明

路径重写原理

  1. 路径匹配:客户端发送请求,并匹配到某一条路径转发规则的正则表达式。
  2. 提取与替换:按照正则表达式的规范提取,将前三个半角圆括号( )提取出来的内容分别保存至${1}${2}${3}中,用于在转发动作的重写或重定向路径中替换。
  3. 拼接:按照转发动作中重写或重定向路径的配置,对其中的${1}${2}${3}进行值的替换,最终拼接成重写或重定向的实际路径。

注意事项

  • 转发条件中正则表达式中包含的半角圆括号( )需要与转发动作中重写或重定向路径中$变量的个数保持一致。
  • 转发动作中重写的路径中需要包含${1}${2}${3}中的一个或多个,且这三个变量不支持使用其余字符代替。

配置和替换示例

编号步骤示例
1配置转发规则中的转发条件和转发动作。
  • 转发条件路径:/sys/(.*)/(.*)/aaa
  • 转发动作重写或重定向路径:/${1}/${2}
sc_overwrite
2客户端发送请求,并匹配路径。
  • 客户端发送的请求路径:/sys/ccc/bbb/aaa
  • 匹配到的转发条件路径:/sys/(.*)/(.*)/aaa
3提取与替换按照正则表达式规范,转发条件路径中的两个(.*)分别提取到cccbbb,并分别保留至转发动作中重写或重定向路径中的${1}${2}
  • ${1}替换为ccc
  • ${2}替换为bbb
4拼接路径后端服务器接收到的路径:/ccc/bbbsc_splice_the_strings_that_overwrote_the_variables_to_form_the_new_url