Ö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.
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.
Kommentar
När begäran dirigeras skickas den fullständiga URL-sökvägen till serverdelspoolen. Om de begärda resurserna finns på en annan sökväg (till exempel om en begäran till http://contoso.com/video/* kräver att videor hanteras från roten på webbplatsen bakom VideoServerPool) måste du även konfigurera antingen en URL-omskrivningsregel eller åsidosätta serverdelssökvägen i serverdelsinställningarna.
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 |
nej |
/*.jpg |
nej |
/Repos/*/Comments/* |
nej |
/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.