Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Front Door 中的 路由 定义传入请求到达 Azure Front Door 边缘时如何处理流量。 路由设置在域和源组之间建立关联。 通过使用高级功能(例如“要匹配的模式”和“规则集”),可以对流向后端资源的流量进行精细的控制。
Note
当使用 Front Door 规则集时,可以配置规则以替代请求的原点组。 由规则集设置的原点组将替代本文中所述的路由过程。
Front Door 路由配置结构
Front Door 传递规则由两个主要部分组成:“左侧”和“右侧”。 Front Door 将传入的请求与路由的左侧相匹配,而右侧则定义处理请求的方式。
传入的匹配项(左侧)
以下属性确定传入的请求是否与传递规则(左侧)匹配:
- HTTP 协议 - HTTP 或 HTTPS
- 域名 - 例如:www.foo.com, *.bar.com
- 路径 - 例如:/*、/users/*、/file.gif
这些属性会在内部扩展,因此协议/域/路径的每种组合都是潜在的匹配集。
路由决策(右侧)
决定如何处理请求取决于是否为路由启用了高速缓存。 如果缓存的响应不可用,则将请求转发到相应的原点。
路由匹配
本节介绍 Front Door 如何将请求与传递规则匹配。 基本原则是,Front Door 始终按照该顺序评估“左侧”属性:协议、域和路径,与 最具体的请求 匹配。
前端主机匹配
Azure Front Door 按照以下步骤来匹配前端主机:
- 检查前端主机上是否具有精确匹配的路由。
- 如果未找到精确匹配项,则请求将被拒绝,并出现“404:错误请求”错误。
下表描述了三种不同的传递规则及其前端主机和路径:
路由规则 | 前端主机 | Path |
---|---|---|
A | foo.contoso.com | /* |
B | foo.contoso.com | /users/* |
C | www.fabrikam.com,foo.adventure-works.com | /*/图像/* |
下表显示了上表中传递规则的匹配结果:
传入前端主机 | 匹配的传递规则 |
---|---|
foo.contoso.com | A、B |
www.fabrikam.com | C |
images.fabrikam.com | 错误 404: 错误的请求 |
foo.adventure-works.com | C |
contoso.com | 错误 404: 错误的请求 |
www.adventure-works.com | 错误 404: 错误的请求 |
www.northwindtraders.com | 错误 404: 错误的请求 |
路径匹配
Azure Front Door 确定特定前端主机并筛选可能的传递规则后,会根据请求路径选择传递规则。 使用以下逻辑:
- 检查是否存在与请求路径精确匹配的传递规则。
- 如果未找到精确匹配项,请查找具有匹配通配符路径的传递规则。
- 如果未找到匹配的路径,则请求将被拒绝,并出现“404:错误请求”错误。
Note
通配符 *
仅适用于在其之后没有任何其他字符的路径。 此外,通配符 *
前面必须有斜杠 /
。 没有通配符的路径被视为精确匹配路径。 以斜杠 /
结尾的路径也是完全匹配的路径。 确保路径遵循这些规则以避免错误。
下表列出了传递规则及其前端主机和路径组合:
路由规则 | 前端主机 | Path |
---|---|---|
A | www.contoso.com |
/ |
B | www.contoso.com |
/* |
C | www.contoso.com |
/ab |
D | www.contoso.com |
/abc |
E | www.contoso.com |
/abc/ |
F | www.contoso.com |
/abc/* |
G | www.contoso.com |
/abc/def |
H | www.contoso.com |
/path/ |
下表显示哪个传递规则与 Azure Front Door 边缘的传入请求匹配:
传入请求 | 匹配的路由 |
---|---|
www.contoso.com/ |
A |
www.contoso.com/a |
B |
www.contoso.com/ab |
C |
www.contoso.com/abc |
D |
www.contoso.com/abzzz |
B |
www.contoso.com/abc/ |
E |
www.contoso.com/abc/d |
F |
www.contoso.com/abc/def |
G |
www.contoso.com/abc/defzzz |
F |
www.contoso.com/abc/def/ghi |
F |
www.contoso.com/path |
B |
www.contoso.com/path/ |
H |
www.contoso.com/path/zzz |
B |
Warning
如果没有精确匹配的前端主机 (/*) 的传递规则,则不会匹配任何传递规则。
示例配置:
Route | Host | Path |
---|---|---|
A | profile.contoso.com | /api/* |
匹配表:
传入请求 | 匹配的路由 |
---|---|
profile.domain.com/other | None. 错误 404: 错误的请求 |
路由决策
Azure Front Door 与传递规则匹配后,会决定如何处理请求。 如果有可用的缓存响应,则会将其发回客户端。
如果为匹配的路由规则配置 了规则集 ,则会按顺序对其进行处理。 规则集可以替代路由,方法是将流量强制路由到特定的原点组。 如果没有定义规则集,则会将请求按原样转发到原点组。
后续步骤
- 创建 Azure Front Door。
- 了解 Azure Front Door 路由体系结构。