如何将带有前端 SPA 的 Azure CDN 和带有 .Net Core WebApi 的 Azure WebApp 配置到相同的自定义域?

How to configure Azure CDN with front-end SPA and Azure WebApp with .Net Core WebApi to same custom domain?

我希望 https://example.com as the custom domain for the Azure CDN I have setup, and https://example.com/api 作为其余 api 端点来捕获从我的 SPA 到后端 .Net Core Web API 提供数据的所有调用.

如何在应用服务上设置自定义域来为 https://example.com/api 提供服务,并为 Azure CDN 使用相同的自定义域来为所有前端 SPA 网页提供服务?

现在,我只为应用服务配置了自定义域,但我想将前端 SPA 移动到 Azure CDN 以释放尽可能多的 Web 资源 API.

提前致谢,如有任何指导,将不胜感激。

遗憾的是,无法在两个不同的 public 服务中添加相同的自定义域,因为 CNAME 记录只能在您需要添加时在该名称上没有其他记录时使用custom domains 通过 CNAME 或 A DNS 记录连接到您的 CDN 端点和应用程序服务。查看 CNAME 记录 wiki

在这种情况下,您可以通过 this tutorial 之后的 CNAME DNS 记录将自定义域添加到您的 Azure CDN 端点,但您需要创建一个子域,例如 subdomain.example.com根域 example.com,然后将子域添加到 Azure CDN 终结点的 custom domains

您可以引入另一个资源,例如 Azure Front Door,它可以充当代理并将 CDN 和您的应用服务隐藏在一个域后面。

Front Door 允许您配置路由规则,以便将对 /api 的请求路由到应用服务并将对静态资产的请求路由到 CDN。

然后您可以将 DNS CNAME 设置为 Front Door,所有请求都将发送到 Front Door,而不是直接发送到 CDN 或您的应用服务。

这为您提供了无需担心 CORS 的优势,因为从外部角度来看,所有内容都来自同一域。

它还有其他好处,例如允许您配置请求限制、SSL 终止和全局负载平衡等等。