Azure实战:在 Frontdoor 中配置路由

2025-02-07#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"

加载中...