将两个不同的子域映射到一个 Azure 应用服务计划(内部有两个不同的应用服务)

Map two different subdomains to a one Azure App Service Plan (with two different App Service inside)

让我先解决这个问题,我对 DNS 设置不是很熟悉。但我想知道我是否可以进行此设置。我现在无法对此进行测试,因为我控制着我们的 Azure 门户而不是域名提供商。

  1. 我们将有 2 个子域。例如,api.contoso.com 和 app.contoso.com
  2. 我们目前有一个 Azure 应用服务计划,其中包含两个应用程序。一个是前端SPA,一个是后端。

查看两个服务的IP地址和Custom Domain Verification ID,是一样的!所以我想知道是否可以设置两个子域。如果不是,我会考虑将其中一个应用服务移出到它自己的应用服务计划中,或者可能只是将一个自定义域映射到前端。有什么提示或建议吗?

是的,这是完全可能的,而且是一个非常标准的设置。您将在您的 DNS 设置中使用 CNAME 记录,这意味着您将不会使用您的应用服务计划所在的 VM 的 IP 地址。相反,CNAME DNS 记录将您的自定义域映射到另一个域 - 在本例中是应用服务的域名。

您将在每个应用服务上配置不同的自定义域(最好是保护它的证书)。

例如您的 DNS 可能如下所示:

app.contoso.com  CNAME  myapp.azurewebsites.net
api.contoso.com  CNAME  myapi.azurewebsites.net

即当对左侧域发出请求时,它将被转发到右侧域。

当对您的任一自定义域发出请求时,自定义域将位于主机 header 中。此请求将被路由到应用程序服务网关,该网关将查看主机 header 以了解将请求路由到哪个 VM,以及一旦在正确的 VM 上,哪个应用程序服务为实际请求提供服务。

完成上述设置后,您可以查询 DNS 系统以查看请求将采用的完整路由,例如:

nslookup app.contoso.com

可以return:

Name:    waws-prod-xyz-123-1234.uksouth.cloudapp.azure.com
Address:  99.99.99.99
Aliases:  app.contoso.com
      myapp.azurewebsites.net
      waws-prod-xyz-123-1234.uksouth.cloudapp.azure.com

使用此命令,您将看到您的应用服务计划所在的实际虚拟机(我在这里编造了 IP 和虚拟机名称!)。