让我解决这个问题,我对DNS设置不太熟悉。但我想知道我是否可以有这个设置。我现在无法对此进行测试,因为我控制我们的Azure门户,但不控制域名提供商。
- 我们将有两个子域。例如,api.contoso.com和app.contoso.com
- 我们目前有一个单独的Azure应用程序服务计划,其中包含两个应用程序。一个是前端SPA,另一个是后端SPA
检查两个服务的IP地址和自定义域验证ID,它们是相同的!所以我想知道是否可以设置这两个子域。如果没有,我会考虑将其中一个应用程序服务转移到自己的应用程序服务计划中,或者只将一个自定义域映射到前端。有什么建议吗?
是的,这是完全可能的,也是一个非常标准的设置。你将在DNS设置中使用CNAME记录,这意味着你不会使用应用服务计划所在的虚拟机的IP地址。相反,CNAME DNS记录会将你的自定义域映射到另一个域-在这种情况下是应用服务的域名。
您将在每个应用程序服务上配置不同的自定义域(最好是一个证书来保护它(。
例如,您的DNS可能如下所示:
app.contoso.com CNAME myapp.azurewebsites.net
api.contoso.com CNAME myapi.azurewebsites.net
即,当请求左边的域时,它将被转发到右边的域。
当请求任一自定义域时,该自定义域将位于主机标头中。该请求将被路由到应用服务网关,应用服务网关将查看主机标头,以便知道将请求路由到哪个VM,并在正确的VM上为实际请求提供服务。
一旦你有了上述设置,你就可以查询DNS系统,查看请求将采用的完整路线,例如:
nslookup app.contoso.com
可能返回:
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和虚拟机名称!(。