URL パス ベースのルーティングの概要URL Path Based Routing overview

URL パス ベースのルーティングを使用すると、要求の URL パスに基づいてバックエンド サーバー プールにトラフィックをルーティングできます。URL Path Based Routing allows you to route traffic to back-end server pools based on URL Paths of the request.

1 つのシナリオとして、異なる種類のコンテンツの要求を、異なるバックエンド サーバー プールにルーティングします。One of the scenarios is to route requests for different content types to different backend server pools.

次の例では、Application Gateway は 3 つのバックエンド サーバー プール (VideoServerPool、ImageServerPool、DefaultServerPool など) からの contoso.com のトラフィックを処理します。In the following example, Application Gateway is serving traffic for contoso.com from three back-end server pools for example: VideoServerPool, ImageServerPool, and DefaultServerPool.

imageURLroute

http://contoso.com/video/* に対する要求は VideoServerPool に、http://contoso.com/images/* に対する要求は ImageServerPool に、それぞれルーティングされます。Requests for http://contoso.com/video/* are routed to VideoServerPool, and http://contoso.com/images/* are routed to ImageServerPool. 一致するパス パターンがない場合は、DefaultServerPool が選択されます。DefaultServerPool is selected if none of the path patterns match.

重要

v1 SKU では、規則はポータルで表示される順序で処理されます。For the v1 SKU, rules are processed in the order they are listed in the portal. 基本リスナーが先に表示されていて、なおかつ受信要求と一致した場合、そのリスナーによって要求が処理されます。If a basic listener is listed first and matches an incoming request, it gets processed by that listener. v2 SKU では、完全一致の優先順位が高くなります。For the v2 SKU, exact matches have higher precedence. ただし、基本リスナーを構成する前に、まずマルチサイト リスナーを構成することを強くお勧めします。However, it is highly recommended to configure multi-site listeners first prior to configuring a basic listener. そうすることで、トラフィックが確実に適切なバックエンドにルーティングされます。This ensures that traffic gets routed to the right back end.

UrlPathMap 構成要素UrlPathMap configuration element

urlPathMap 要素は、パス パターンのバックエンド サーバー プールのマッピングへの指定に使用します。The urlPathMap element is used to specify Path patterns to back-end server pool mappings. 次のコード例は、テンプレート ファイルの urlPathMap 要素のスニペットです。The following code example is the snippet of urlPathMap element from template file.

"urlPathMaps": [{
    "name": "{urlpathMapName}",
    "id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/urlPathMaps/{urlpathMapName}",
    "properties": {
        "defaultBackendAddressPool": {
            "id": "/subscriptions/    {subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/backendAddressPools/{poolName1}"
        },
        "defaultBackendHttpSettings": {
            "id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/backendHttpSettingsList/{settingname1}"
        },
        "pathRules": [{
            "name": "{pathRuleName}",
            "properties": {
                "paths": [
                    "{pathPattern}"
                ],
                "backendAddressPool": {
                    "id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/backendAddressPools/{poolName2}"
                },
                "backendHttpsettings": {
                    "id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/backendHttpsettingsList/{settingName2}"
                }
            }
        }]
    }
}]

PathPatternPathPattern

PathPattern は照合するパス パターンの一覧です。PathPattern is a list of path patterns to match. それぞれ / で始まる必要があり、"*" が許可されるのは末尾の "/" の後だけです。Each must start with / and the only place a "*" is allowed is at the end following a "/." パス照合に渡される文字列の最初の ?The string fed to the path matcher does not include any text after the first ? または # の後にテキストは含まれず、これらの文字はここでは許可されません。or #, and those chars are not allowed here. それ以外の場合、URL で許可される文字はすべて PathPattern で許可されます。Otherwise, any characters allowed in a URL are allowed in PathPattern.

Application Gateway v1 と v2 のいずれをデプロイしているかによって、サポートされるパターンは異なります。The supported patterns depend on whether you deploy Application Gateway v1 or v2:

v1v1

パス ルールでは大文字と小文字が区別されません。Path rules are case insensitive.

v1 のパス パターンv1 path pattern サポートされているかIs supported?
/images/* はいyes
/images* はいyes
/images/*.jpg いいえno
/*.jpg いいえno
/Repos/*/Comments/* いいえno
/CurrentUser/Comments/* はいyes

v2v2

パス ルールでは大文字と小文字が区別されません。Path rules are case insensitive.

v2 のパス パターンv2 path pattern サポートされているかIs supported?
/images/* はいyes
/images* はいyes
/images/*.jpg いいえno
/*.jpg いいえno
/Repos/*/Comments/* いいえno
/CurrentUser/Comments/* はいyes

詳しくは、「 Resource Manager template using URL-based routing (URL ベースのルーティングを使用した Resource Manager テンプレート) 」をご覧ください。You can check out a Resource Manager template using URL-based routing for more information.

PathBasedRouting ルールPathBasedRouting rule

タイプ PathBasedRouting の RequestRoutingRule は、リスナーを urlPathMap にバインドする際に使用します。RequestRoutingRule of type PathBasedRouting is used to bind a listener to a urlPathMap. このリスナーで受け取られるすべての要求は、urlPathMap に指定されたポリシーに基づいてルーティングされます。All requests that are received for this listener are routed based on policy specified in urlPathMap. PathBasedRouting ルールのスニペット:Snippet of PathBasedRouting rule:

"requestRoutingRules": [
    {

"name": "{ruleName}",
"id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/requestRoutingRules/{ruleName}",
"properties": {
    "ruleType": "PathBasedRouting",
    "httpListener": {
        "id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/httpListeners/<listenerName>"
    },
    "urlPathMap": {
        "id": "/subscriptions/{subscriptionId}/../microsoft.network/applicationGateways/{gatewayName}/urlPathMaps/{urlpathMapName}"
    }

}
    }
]

次のステップNext steps

URL ベースのコンテンツ ルーティングについて理解したら、 URL ベースのルーティングを使用した Application Gateway の作成 に関するセクションに移動して、URL ルーティング ルールを使ってアプリケーション ゲートウェイを作成します。After learning about URL-based content routing, go to create an application gateway using URL-based routing to create an application gateway with URL routing rules.