Översikt över URL-sökvägsbaserad routning

Med url-sökvägsbaserad routning kan du dirigera trafik till serverdelsserverpooler baserat på URL-sökvägar för begäran.

Ett av scenarierna är att dirigerar begäranden för olika innehållstyper till olika serverdels-serverpooler.

I följande exempel betjänar Application Gateway trafik för contoso.com från tre serverdelsserverpooler, till exempel VideoServerPool, ImageServerPool och DefaultServerPool.

imageURLroute

Förfrågningar om http://contoso.com/video/* dirigeras till VideoServerPool och förfrågningar om http://contoso.com/images/* dirigeras till ImageServerPool. DefaultServerPool väljs om inget av sökvägsmönstren matchar.

Viktigt!

För både v1- och v2-SKU:er bearbetas reglerna i den ordning de visas i portalen. Det bästa sättet när du skapar sökvägsregler är att ha den minst specifika sökvägen (de med jokertecken) i slutet. Om jokertecken är överst prioriteras de även om det finns en mer specifik matchning i efterföljande sökvägsregler.

Om en grundläggande lyssnare visas först och matchar en inkommande begäran kommer den att bearbetas av den lyssnaren. Vi rekommenderar dock starkt att du konfigurerar lyssnare för flera platser först innan du konfigurerar en grundläggande lyssnare. Detta säkerställer att trafik dirigeras till rätt serverdel.

UrlPathMap-konfigurationselementet

UrlPathMap-elementet används för att ange sökvägsmönster för serverdelspoolmappningar. Följande kodexempel är utdrag av urlPathMap-element från mallfilen.

"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 är en lista över sökvägsmönster som ska matchas. Varje sökväg måste börja med/och kan använda * som jokertecken. Strängen som matas till sökvägsmatchare innehåller ingen text efter den första ? eller #, och dessa tecken tillåts inte här. Annars tillåts alla tecken som tillåts i en URL i PathPattern.

Sökvägsregler är skiftlägesokänsliga.

Sökvägsmönster Stöds?
/images/* ja
/images* ja
/images/*.jpg no
/*.jpg no
/Repos/*/Comments/* no
/CurrentUser/Comments/* ja

Sökvägsregler bearbetas i ordning, baserat på hur de visas i portalen. Den minst specifika sökvägen (med jokertecken) bör vara i slutet av listan, så att den bearbetas sist. Om jokerteckenregler finns överst i listan prioriteras de och bearbetas först. Se följande exempelscenarier.

Exempel

Sökvägsbaserad regelbearbetning när jokertecken (*) används:

Exempel 1:

/master-dev* to contoso.com

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

/master-dev/* to microsoft.com

Eftersom sökvägen /master-dev* med jokertecken finns ovanför mer detaljerade sökvägar dirigeras alla klientbegäranden som innehåller /master-dev till contoso.com, inklusive den specifika /master-dev/api-core/. För att säkerställa att klientbegäranden dirigeras till lämpliga sökvägar är det viktigt att ha detaljerade sökvägar ovanför sökvägar med jokertecken.

Exempel 2:

/ (default) to contoso.com

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

/master-dev/api to bing.com

/master-dev/* to microsoft.com

Alla klientbegäranden med sökvägsmönstret /master-dev/* bearbetas i den ordning som anges. Om det inte finns någon matchning i sökvägsreglerna dirigeras begäran till standardmålet.

Mer information finns i Resource Manager-mall med URL-baserad routning.

PathBasedRouting-regeln

RequestRoutingRule av typen PathBasedRouting används för att binda en lyssnare till en urlPathMap. Alla begäranden som tas emot för den här lyssnaren dirigeras baserat på principen som anges i urlPathMap. Utdrag från PathBasedRouting-regeln:

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

}
    }
]

Nästa steg

När du läst om URL-baserad innehållsroutning, kan du gå till skapa en Application Gateway med URL-baserad routing för att skapa en Application Gateway med regler för URL-routning.