Overzicht van op URL-pad gebaseerde routering

Met routering op basis van URL-pad kunt u verkeer routeren naar back-endserverpools op basis van URL-paden van de aanvraag.

Een van de scenario's is het routeren van aanvragen voor verschillende inhoudstypen naar verschillende back-endserverpools.

In het volgende voorbeeld biedt Application Gateway verkeer voor contoso.com van drie back-endserverpools, bijvoorbeeld: VideoServerPool, ImageServerPool en DefaultServerPool.

imageURLroute

Aanvragen voor http://contoso.com/video/* worden doorgestuurd naar VideoServerPool, en http://contoso.com/images/* worden doorgestuurd naar ImageServerPool. Als geen van de padpatronen overeenkomen, wordt DefaultServerPool geselecteerd.

Belangrijk

Voor zowel de v1- als v2-SKU's worden regels verwerkt in de volgorde waarin ze worden vermeld in de portal. De aanbevolen procedure voor het maken van padregels is om het minst specifieke pad (de paden met jokertekens) aan het einde te hebben. Als jokertekens bovenaan staan, hebben ze prioriteit, zelfs als er een specifiekere overeenkomst is in volgende padregels.

Als een basislistener als eerste wordt weergegeven en overeenkomt met een inkomende aanvraag, wordt deze door die listener verwerkt. Het wordt echter ten zeerste aanbevolen eerst listeners voor meerdere sites te configureren voordat u een basislistener configureert. Dit zorgt ervoor dat verkeer naar de juiste back-end wordt geleid.

Configuratie-element UrlPathMap

Het urlPathMap-element wordt gebruikt om padpatronen op te geven voor toewijzingen van back-endserverpools. Het volgende codevoorbeeld is het fragment van het urlPathMap-element van het sjabloonbestand.

"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 is een lijst met padpatronen die overeenkomen. Elk pad moet beginnen met / en kan * gebruiken als jokerteken. De tekenreeks die naar de padmatcher wordt ingevoerd, bevat geen tekst na de eerste ? of #, en deze tekens zijn hier niet toegestaan. Anders zijn alle tekens die zijn toegestaan in een URL, toegestaan in PathPattern.

Padregels zijn niet hoofdlettergevoelig.

Padpatroon Wordt ondersteund?
/images/* ja
/images* ja
/images/*.jpg nee
/*.jpg nee
/Repos/*/Comments/* nee
/CurrentUser/Comments/* ja

Padregels worden op volgorde verwerkt op basis van de wijze waarop ze worden vermeld in de portal. Het minst specifieke pad (met jokertekens) moet zich aan het einde van de lijst bevinden, zodat het laatste wordt verwerkt. Als er jokertekenregels boven aan de lijst staan, hebben ze prioriteit en worden ze eerst verwerkt. Zie de volgende voorbeeldscenario's.

Voorbeelden

Op pad gebaseerde regelverwerking wanneer jokerteken (*) wordt gebruikt:

Voorbeeld 1:

/master-dev* to contoso.com

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

/master-dev/* to microsoft.com

Omdat het jokertekenpad /master-dev* boven meer gedetailleerde paden aanwezig is, worden alle clientaanvragen die bevatten /master-dev doorgestuurd naar contoso.com, inclusief de specifieke /master-dev/api-core/. Om ervoor te zorgen dat de clientaanvragen naar de juiste paden worden gerouteerd, is het essentieel om de gedetailleerde paden boven jokertekenpaden te hebben.

Voorbeeld 2:

/ (default) to contoso.com

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

/master-dev/api to bing.com

/master-dev/* to microsoft.com

Alle clientaanvragen met het padpatroon /master-dev/* worden verwerkt in de volgorde zoals vermeld. Als er geen overeenkomst binnen de padregels is, wordt de aanvraag doorgestuurd naar het standaarddoel.

Zie de Resource Manager-sjabloon voor meer informatie met behulp van routering op basis van URL's.

PathBasedRouting-regel

RequestRoutingRule van type PathBasedRouting wordt gebruikt voor het verbinden van een listener met een urlPathMap. Alle aanvragen die zijn ontvangen voor deze listener, worden gerouteerd op basis van een beleid dat is opgegeven in urlPathMap. Fragment van PathBasedRouting-regel:

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

}
    }
]

Volgende stappen

Nadat u meer hebt geleerd over routering van op URL gebaseerde inhoud, gaat u naar Een toepassingsgateway maken met behulp van URL-gebaseerde routering om een toepassingsgateway te maken met URL-routeringsregels.