Azure实战:在 Frontdoor 中配置路由
Azure Front Door 是 Azure 云平台提供的 CDN 服务。在 Frontdoor 中配置路由,即将其作为反向代理使用,应该能满足绝大部分的需求。本文分享一些实战经验。
配置路由的几个要素 🔗
在 Frontdoor 中配置路由时候,其实主要配置如下的资源:
- 自定义域名(Custom Domain)。包括域名验证,配置 SSL 证书。这个域名指的是用户请求中的域名。
- 源(Origin)。即后端服务的地址。
- 源组(Origin Group)。将一个或者多个源组成一个源组。通常多个源是同一个服务区的多个实例。还包括健康探针(Health Probe)的配置。
- 路由(Route)。建议自定义域名与源组的映射关系。在建立映射时,还可以加入路径模式等约束。
- 规则(Rule)和规则组(Rule set)。可实现URL重写等规则。
配置 HTTPS 源的注意事项 🔗
在实际使用中,当源(Origin)是 HTTPS 站点时,它似乎无法“自然”地处理 SNI。
当 Frontdoor 在与源建立 SSL 连接时,并不会将用户请求中的域名发送给源,而是使用源的域名建立SSL连接。即便是设置 Origin Host Header 也无济于事,因为 Origin Host Header 属于 HTTP 协议中的一部分,是在建立了 SSL 连接之后才进行解析的。
这同样也影响到到了健康探针。当配置好了健康探针后,发送给源的健康探针请求使用的是源的域名。
在未验证自定义域名时测试路由配置 🔗
在某些情况下,尤其是迁移服务时,可能期望将域名切换到Frontdoor之前进行测试。为此,可先在Frontdoor上验证域名,但不更新域名的DNS记录,然后进行各种验证测试。可参考 《测试已启用 HTTPS 但尚未配置域名的站点》 一文。
使用 Frontdoor 的日志排查问题 🔗
Frontdoor 提供了访问日志用于排查问题,配置方式见《Configure Azure Front Door logs》。开启之后,可通过查询检索日志:
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.CDN" and Category == "FrontDoorAccessLog"
加载中...