代码之家  ›  专栏  ›  技术社区  ›  Moim

使用Azure application gateway在基于路径的路由中修改/截断路径

  •  0
  • Moim  · 技术社区  · 7 年前

    假设应用程序网关接收到一个请求 http://contoso.com/images 并配置为将其转发到后端服务器。继续。通用域名格式。使用基于路径的路由规则( /images/* 例如)。

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

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

    2 回复  |  直到 7 年前
        1
  •  2
  •   Stephen Rauch Afsar Ali    7 年前

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

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

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

        2
  •  0
  •   JohnB    7 年前

    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
    
    推荐文章