Panoramica del routing basato su percorso URL
Il routing basato su percorso URL consente di instradare il traffico a pool di server back-end in base ai percorsi URL della richiesta.
Uno degli scenari è l'instradamento delle richieste di tipi di contenuto diversi a pool di server back-end diversi.
Nell'esempio seguente, il gateway applicazione soddisfa le richieste di traffico per contoso.com dai tre pool di server back-end, ad esempio VideoServerPool, ImageServerPool e DefaultServerPool.
Per le richieste http://contoso.com/video/* viene eseguito il rounting verso VideoServerPool mentre per le richieste http://contoso.com/images/* verso il rounting verso ImageServerPool. In caso di mancata corrispondenza dei percorsi, viene selezionato DefaultServerPool.
Nota
Quando la richiesta viene instradata, il percorso URL completo viene inviato al pool back-end. Se le risorse richieste si trovano in un percorso diverso, ad esempio se una richiesta a http://contoso.com/video/* richiede che i video vengano serviti dalla radice del sito dietro VideoServerPool, sarà necessario quindi configurare anche una regola di riscrittura URL o eseguire l'override del percorso back-end nelle impostazioni back-end.
Importante
Per gli SKU v1 e v2, le regole vengono elaborate nell'ordine in cui sono elencate nel portale. La procedura consigliata quando si creano delle regole di percorso consiste nell'avere il percorso meno specifico (quelli con caratteri jolly) alla fine. Se i caratteri jolly si trovano nella parte superiore, acquistano la priorità anche se esiste una corrispondenza più specifica nelle regole di percorso successive.
Se un listener di base viene elencato per primo e corrisponde a una richiesta in ingresso, sarà tale listener a elaborarla. È tuttavia consigliabile configurare i listener multisito prima di configurare un listener di base. In questo modo il traffico viene indirizzato al back-end appropriato.
Elemento di configurazione UrlPathMap
L'elemento UrlPathMap consente di specificare modelli di percorso dei mapping dei pool di server back-end. L'esempio di codice seguente è il frammento dell'elemento urlPathMap del file modello.
"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 è un elenco di modelli di percorso usati per la corrispondenza. Ogni percorso deve iniziare con / e può usare * come carattere jolly. La stringa inviata al selettore di percorsi non include alcun testo dopo il primo carattere ?
o #
e questi caratteri non sono consentiti qui. Tutti i caratteri consentiti in un URL sono consentiti in PathPattern.
Le regole di percorso non fanno distinzione tra maiuscole e minuscole.
Modello di percorso | È supportato? |
---|---|
/images/* |
yes |
/images* |
sì |
/images/*.jpg |
no |
/*.jpg |
no |
/Repos/*/Comments/* |
no |
/CurrentUser/Comments/* |
yes |
Le regole di percorso vengono elaborate in ordine, in base al modo in cui vengono elencate nel portale. Il percorso meno specifico (con caratteri jolly) deve essere alla fine dell'elenco, in modo che venga elaborato per ultimo. Se le regole con caratteri jolly sono presenti nella parte superiore dell'elenco, avranno priorità e verranno elaborate per prime. Vedere gli scenari di esempio seguenti.
Esempi
Elaborazione di regole basate sul percorso quando viene usato il carattere jolly (*) :
Esempio 1:
/master-dev* to contoso.com
/master-dev/api-core/ to fabrikam.com
/master-dev/* to microsoft.com
Poiché il percorso con caratteri jolly /master-dev*
è presente sopra percorsi più granulari, tutte le richieste client contenenti /master-dev
vengono instradate a contoso.com, incluso l’elemento /master-dev/api-core/
specifico . Per assicurarsi che le richieste client vengano instradate ai percorsi appropriati, è fondamentale avere i percorsi granulari sopra i percorsi con caratteri jolly.
Esempio 2:
/ (default) to contoso.com
/master-dev/api-core/ to fabrikam.com
/master-dev/api to bing.com
/master-dev/* to microsoft.com
Tutte le richieste client con il modello di percorso /master-dev/*
vengono elaborate nell'ordine indicato. Se non esiste alcuna corrispondenza all'interno delle regole del percorso, la richiesta viene instradata alla destinazione predefinita.
Per altre informazioni, vedere modello di Resource Manager che usa il routing basato su URL.
Regola PathBasedRouting
RequestRoutingRule di tipo PathBasedRouting consente di associare un listener a un urlPathMap. Tutte le richieste ricevute per il listener vengono instradate in base ai criteri specificati in urlPathMap. Frammento della regola 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}"
}
}
}
]
Passaggi successivi
Dopo aver acquisito familiarità con il routing di contenuti basato su URL, passare a Create a Path-based rule for an application gateway by using the portal (Creare una regola basata sul percorso per un gateway applicazione usando il portale) per la creazione di un gateway applicazione con regole di routing basate su URL.