0

假设应用程序网关接收到一个请求http://contoso.com/images并配置为将其转发到 backendserver.contoso.com。使用基于路径的路由规则(/images/*例如)。

我希望应用程序网关不保留/images请求 URL 中的路径。我需要截断它,在这种情况下,请求将只是http://contoso.com/。之后的任何路径/images都将保持不变。

可能吗?非常感谢任何帮助/线索。

4

2 回答 2

2

是的,您今天可以使用 PowerShell/CLI 执行此操作。在与池关联的后端 http 设置中,请指定 -Path 参数。例如 -

Add-AzureRmApplicationGatewayBackendHttpSettings -Path "/" -Name setting1 -Port 80 -Protocol Http -CookieBasedAffinity Disabled 

如果-Path根本没有指定,传入请求将按原样路由到后端 - 这是默认行为。当指定为"/"它从 URI 中删除匹配路径时。如果指定为非空值,则使用指定的值代替匹配的路径。

于 2018-02-07T02:23:57.017 回答
0

Amsrivas 和 Stephens 的回答是正确的,但 poweshell CLI 似乎已经改变,至少 @ 版本 5.5.0 现在您必须使用以下命令执行此操作:

# Get gateway object    
$AppGw = Get-AzureRmApplicationGateway -Name "YOUR GATEWAY NAME" -ResourceGroupName "YOUR GATEWAY RESOURCE GROUP"
# Show current settings
Get-AzureRmApplicationGatewayBackendHttpSettings -ApplicationGateway $AppGw
# Set path on local object (other values are whatever you want)
Set-AzureRmApplicationGatewayBackendHttpSettings -ApplicationGateway $AppGw -Name "YOUR SETTING NAME" -Port "80" -Protocol "Http" -CookieBasedAffinity "Disabled" -RequestTimeout 30 -Path "/"
# Commit changes back to Azure
$UpdatedAppGw = Set-AzureRmApplicationGateway -ApplicationGateway $AppGw
# Show new settings as applied in Azure
Get-AzureRmApplicationGatewayBackendHttpSettings -ApplicationGateway $UpdatedAppGw
于 2018-03-21T14:24:33.157 回答