Modify/truncate 使用 Azure 应用程序网关的基于路径的路由中的路径

Modify/truncate path in path based routing with Azure application gateway

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

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

可能吗?非常感谢任何help/clue。

是的,你今天可以用 PowerShell/CLI 做到这一点。在与池关联的后端 http 设置中,请指定 -Path 参数。例如-

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

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

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