问题描述
为App Service配置了应用服务网关(Application Gateway),并且为Application Gateway配置了自定义域名,通过浏览器访问时,出现域名跳转问题,由自定义域名跳转到App Service的默认域名。
问题解答
应用服务是多租户服务,因此它会使用请求中的主机标头将请求路由到正确的终结点。 应用服务的默认域名 *.chinacloudsites.cn(例如 contoso.chinacloudsites.cn)不同于应用程序网关的域名(例如 contoso.com)。
来自客户端的原始请求包含应用程序网关的域名 contoso.com 作为主机名。 需要配置应用程序网关,以便在将请求路由到应用服务后端时,将原始请求中的主机名更改为应用服务的主机名。 在应用程序网关的 HTTP 设置配置中使用开关“从后端地址中选取主机名”。 在运行状况探测配置中使用开关“从后端 HTTP 设置中选取主机名”。
当应用服务执行重定向时,除非另有配置,否则,它会在 location 标头中使用替代的主机名 contoso.chinacloudsites.cn,而不使用原始主机名 contoso.com。
解决方案有两种
方案一:重写Response的Location Header。详见:https://docs.azure.cn/zh-cn/application-gateway/troubleshoot-app-service-redirection-app-service-url#alternate-solution-use-a-custom-domain-name
方案二:为App Service 配置自定义域名,等域名验证成功后,修改DNS记录指向到App Gateway中。
App Service + Application Gateway 使用自定义域名:https://docs.azure.cn/zh-cn/application-gateway/troubleshoot-app-service-redirection-app-service-url#alternate-solution-use-a-custom-domain-name
可以使用 CNAME 记录或 A 记录将自定义 DNS 名称映射到应用服务:https://docs.azure.cn/zh-cn/app-service/app-service-web-tutorial-custom-domain#4map-your-domain