You need to enable JavaScript to run this app.
导航

转发规则概述

最近更新时间2023.12.11 19:12:09

首次发布时间2022.05.18 20:54:43

监听器按照您设置的转发规则,对不同请求特征的访问流量做出具体调度。ALB 支持基于域名和路径的转发规则。您可以为1个监听器配置多条转发规则。

  • 默认转发规则:创建监听器成功后系统自动生成的转发规则。默认转发规则的域名为-、路径为/,表示 ALB 可以转发客户端任意的域名和路径。请求没有命中自定义转发规则时,会遵循默认转发规则,将请求转发至该监听器的默认服务器组上。
  • 自定义转发规则:除默认转发规则之外,您可根据业务需求自定义的转发规则,指定域名及路径做相应的转发、重定向或重写动作。

转发规则匹配的优先级说明

转发规则匹配的优先级

ALB 接收到客户端请求时,根据您的配置的转发规则,先进行域名的匹配,再进行路径的匹配。具体的匹配优先级如下:

步骤

匹配内容

优先级

1

系统将客户端请求的域名与转发规则中您配置的域名进行匹配。

  • ALB的域名匹配是对同级域名进行匹配。
  • 如果客户端请求的域名匹配与转发规则中的多个同级域名匹配,ALB 根据域名的类型,选择域名的优先级为:精准域名 > 以通配符*开头的泛域名 > 以通配符*结尾的泛域名。如:alb.volc.test.com 同时满足*.volc.test.comalb.volc.test.*,最终会匹配到*.volc.test.com对应的转发规则。

2

系统将客户端请求 URL 与转发规则中您配置的路径进行匹配。

如果客户端请求的 URL 与转发规则中的多个路径匹配,ALB 选择具体路径的优先级为:

  • 正则表达式格式的 URL > 非正则表达式格式的 URL。
  • 如果请求的 URL 匹配到多个正则表达式格式的 URL ,那么 ALB 会按照时间先后选择匹配的 URL,优先匹配配置更早的 URL 。
  • 如果请求的 URL 匹配到多个非正则表达式格式的 URL ,那么 ALB 会按照最长匹配原则从前向后选择匹配的 URL ,优先配置更长的 URL。

请求到达ALB实例后的转发操作

图片
如上图所示,ALB实例接收到请求时,根据转发规则的配置,依次匹配域名、路径后转发到对应的后端服务器组。匹配规则如下:
收到的请求后,根据优先级“精确域名 > 以* 开头的泛域名 > 以*结尾的泛域名”的顺序进行同级域名匹配。

  • 如果存在匹配的域名,则继续匹配路径,按照最长匹配原则匹配。
    • 存在匹配的URL,则将请求转发到相应规则的后端服务器组。
    • 没有匹配的URL,则无法转发该请求,ALB 返回4XX状态码。
  • 如果没有匹配的域名,则继续匹配[无域名仅路径]的转发规则。
    • 存在[无域名仅路径]的转发规则,则继续匹配路径,按照最长匹配原则匹配。
      • 存在匹配的URL,则将请求转发到相应规则的后端服务器组。
      • 没有匹配的URL,则将请求转发到默认转发规则对应的后端服务器组。
    • 没有[无域名仅路径]的转发规则,则将请求转发到默认转发规则对应的后端服务器组。

转发规则匹配示例

某个 ALB 实例的监听器上配置了如下四条转发规则:

转发规则

创建时间

序号

转发规则中配置的域名

转发规则中配置的 URL

转发动作

1

test.com

/volc

转发至服务器组 A

2023.05.01

2

test.com

/volc/test

转发至服务器组 B

2023.05.02

3

test.com

~/test

转发至服务器组 C

2023.05.03

4

test.com

~/test/rule1

转发至服务器组 D

2023.05.04

  • 如果请求为www.test.com/volc/test,那么 ALB 将按照非正则URL的最长匹配原则,将匹配到第2条转发规则将请求转发至服务器组B。
  • 如果请求为www.test.com/test/rule1,按照正则URL先配置的规则优先级更高原则,将匹配到第3条转发规则转发至服务器组C。