Web App的Azure WAF前端更改主机名

时间:2018-07-28 03:21:29

标签: azure-web-sites

我已经在我的App Service前面配置了一个Azure Web应用程序防火墙,它成功地传递了请求。我已按照以下microsoft docs的说明进行操作。

我有以下配置:

自定义域:test。[customdomain] .com DNS记录指向针对WAF配置的公共IP。定制域也已在Web App上配置。

WAF具有一个后端池,该后端池被配置为使用“ IP地址或FQDN”,并具有以下记录: [customwebsite] .azurewebsites.net

当我导航到test。[customdomain] .com时,我已经成功接收了该网站,但是看起来好像WAF在转发到App Service时正在重写请求。 这样,我的App Service收到了请求,并且它具有URL [customwebsite] .azurewebsites.net,而不是test。[customdomain] .com。

这是故意的吗?审核multi-tenant documentation,默认情况下不应该重写主机吗?

2 个答案:

答案 0 :(得分:2)

解决方案是确保在指定New-AzureRmApplicationGatewayBackendHttpSettings时不要使用选项-PickHostNameFromBackendAddress。我应该注意到,但是此设置告诉WAF使用BackendHttpSettings中指定的地址进行重写。

然后,您还需要重新配置探针以指定手动主机名。例如设置AzureRmApplicationGatewayProbeConfig时请勿指定-PickHostNameFromBackendHttpSettings。

答案 1 :(得分:0)

对我来说,有效的方法是在HTTP设置中确保未选择-PickHostNameFromBackendAddress。同样,该界面不允许您设置-HostName,因此请放到PowerShell并设置-HostName和如下所示的探针:

$GW = Get-AzureRmApplicationGateway -ResourceGroupName "MY-APP-WAF-RG" -Name "APP-WAF"

$PROBE = Get-AzureRmApplicationGatewayProbeConfig -ApplicationGateway $GW -Name "my-api-https-probe"

Set-AzureRmApplicationGatewayBackendHttpSettings -ApplicationGateway $GW -Probe $PROBE -HostName "my-api.example.org" -CookieBasedAffinity "enabled" -AffinityCookieName "AGAffinity" -Protocol "HTTPS" -Port 443 -Name "my-api-https-settings"

Set-AzureRmApplicationGateway -ApplicationGateway $GW

也在探针上,我选择了-PickHostNameFromBackendHttpSettings。

使用上述方法,我在WAF后面配置了两个具有自定义域和SSL的Web应用。

糟糕的体验。