URL パス ベースのルーティングの概要

URL パス ベースのルーティングを使用すると、要求の URL パスに基づいてバックエンド サーバー プールにトラフィックをルーティングできます。

1 つのシナリオとして、異なる種類のコンテンツの要求を、異なるバックエンド サーバー プールにルーティングします。

次の例では、Application Gateway は 3 つのバックエンド サーバー プール (VideoServerPool、ImageServerPool、DefaultServerPool など) からの contoso.com のトラフィックを処理します。

imageURLroute

http://contoso.com/video/* の要求は、VideoServerPool にルーティングされ、http://contoso.com/images/* は ImageServerPool にルーティングされます。 一致するパス パターンがない場合は、DefaultServerPool が選択されます。

Note

要求がルーティングされると、完全な URL パスがバックエンド プールに送信されます。 要求されたリソースが別のパスにある場合 (たとえば、http://contoso.com/video/* への要求で VideoServerPool の背後にあるサイトのルートからビデオを提供する必要がある場合)、URL 書き換えルールを構成するか、バックエンド設定でバックエンド パスをオーバーライドする必要もあります。

重要

v1、v2 どちらの SKU でも、ポータルに一覧表示される順番でルールを処理します。 パス ルールを作成するときは、最も限定的でないパス (ワイルドカードを含む) を最後に指定することをお勧めします。 ワイルドカードが一番上にあると、後続のパス ルールにより限定的な一致がある場合でも、ワイルドカードが優先されます。

基本リスナーが先に表示されていて、なおかつ受信要求と一致した場合、そのリスナーによって要求が処理されます。 ただし、基本リスナーを構成する前に、まずマルチサイト リスナーを構成することを強くお勧めします。 そうすることで、トラフィックが確実に適切なバックエンドにルーティングされます。

UrlPathMap 構成要素

urlPathMap 要素を使用すると、バックエンド サーバー プールのマッピングにパス パターンを指定できます。 次のコード例は、テンプレート ファイルの urlPathMap 要素のスニペットです。

"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}/backendHttpSettingsCollection/{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}/backendHttpSettingsCollection/{settingName2}"
                }
            }
        }]
    }
}]

PathPattern

PathPattern は照合するパス パターンの一覧です。 各パスは / で始まる必要があります。ワイルドカード文字として * を使用できます。 パス照合に提供する文字列には最初の ? または # の後にテキストを含めません (これらの文字は、ここでは許可されません)。 それ以外の場合、URL で許可される文字はすべて PathPattern で許可されます。

パス ルールでは大文字と小文字が区別されません。

パスのパターン サポートされているか
/images/* はい
/images* はい
/images/*.jpg no
/*.jpg no
/Repos/*/Comments/* no
/CurrentUser/Comments/* はい

パス ルールは、ポータルでの一覧表示に基づいて順番に処理されます。 最も具体性の低いパス (ワイルドカードを含む) は、 最後に処理されるように、一覧の末尾に置く必要があります。 一覧の先頭にワイルドカード ルールが存在する場合は、それらが優先され、最初に処理されます。 次のシナリオ例を参照してください。

ワイルドカード (*) が使用されている場合のパスベースのルール処理:

例 1:

/master-dev* to contoso.com

/master-dev/api-core/ to fabrikam.com

/master-dev/* to microsoft.com

ワイルドカード パス /master-dev* は、より詳細なパスの上に存在するため、/master-dev を含むすべてのクライアント要求は、特定の /master-dev/api-core/ を含む contoso.com にルーティングされます。 クライアント要求が適切なパスにルーティングされるようにするには、ワイルドカード パスの上に詳細なパスを設定する必要があります。

例 2:

/ (default) to contoso.com

/master-dev/api-core/ to fabrikam.com

/master-dev/api to bing.com

/master-dev/* to microsoft.com

パス パターン /master-dev/* を使用するすべてのクライアント要求は、リストに示されている順番で処理されます。 パス ルール内で一致が検出されない場合、要求は既定のターゲットにルーティングされます。

詳細については、「URL ベースのルーティングを使用した Resource Manager テンプレート」をご覧ください。

PathBasedRouting ルール

タイプ PathBasedRouting の RequestRoutingRule は、リスナーを urlPathMap にバインドする際に使用します。 このリスナーで受け取られるすべての要求は、urlPathMap に指定されたポリシーに基づいてルーティングされます。 PathBasedRouting ルールのスニペット:

"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}"
    }

}
    }
]

次のステップ

URL ベースのコンテンツ ルーティングについて理解したら、 URL ベースのルーティングを使用した Application Gateway の作成 に関するセクションに移動して、URL ルーティング ルールを使ってアプリケーション ゲートウェイを作成します。