Přehled směrování na základě cest URL

Směrování na základě cest URL umožňuje směrovat provoz do back-endových fondů serverů na základě cest URL požadavku.

Jedním ze scénářů je směrování požadavků na různé typy obsahu do různých fondů back-endové serveru.

V následujícím příkladu služba Application Gateway obsluhuje provoz pro contoso.com ze tří back-endových fondů serverů, například VideoServerPool, ImageServerPool a DefaultServerPool.

imageURLroute

Požadavky pro http://contoso.com/video/* se směrují na VideoServerPool a pro http://contoso.com/images/* se směrují na ImageServerPool. Pokud nevyhovuje žádný vzor cesty, vybere se VychoziFondServeru.

Poznámka:

Při směrování požadavku se do back-endového fondu odešle úplná cesta URL. Pokud jsou požadované prostředky na jiné cestě (například pokud požadavek na http://contoso.com/video/* vyžaduje, aby se videa obsluhovala z kořenového adresáře webu za fondem VideoServer), budete také muset nakonfigurovat pravidlo přepsání adresy URL nebo přepsat cestu back-endu v nastavení back-endu.

Důležité

Pro skladové položky v1 i v2 se pravidla zpracovávají v pořadí, v jakém jsou uvedena na portálu. Osvědčeným postupem při vytváření pravidel cesty je mít na konci nejméně konkrétní cestu (ty se zástupnými cardy). Pokud jsou zástupné cardy v horní části, mají prioritu i v případě, že v následných pravidlech cesty existuje konkrétnější shoda.

Pokud je základní naslouchací proces uveden jako první a odpovídá příchozímu požadavku, požadavek se zpracuje tímto naslouchacím procesem. Před konfigurací základního naslouchacího procesu se ale důrazně doporučuje nakonfigurovat naslouchací procesy s více lokalitami. Tím se zajistí směrování provozu do správného back-endu.

Konfigurační prvek UrlPathMap

Element urlPathMap slouží k určení vzorů Path pro mapování fondu back-endového serveru. Následující ukázka kódu je fragment prvku UrlPathMap ze souboru šablony.

"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 je seznam vzorů cest, které se mají shodovat. Každá cesta musí začínat znakem / a může používat * jako zástupný znak. Řetězec předaný do shodovače cesty neobsahuje žádný text za prvním ? znakem nebo #znak a tyhle znaky tady nejsou povolené. V opačném případě jsou v cestě PathPattern povoleny všechny znaky povolené v adrese URL.

Pravidla cesty nerozlišují malá a velká písmena.

Vzor cesty Je podporováno?
/images/* ano
/images* ano
/images/*.jpg ne
/*.jpg ne
/Repos/*/Comments/* ne
/CurrentUser/Comments/* ano

Pravidla cest se zpracovávají v pořadí podle toho, jak jsou uvedená na portálu. Nejméně specifická cesta (se zástupnými cardy) by měla být na konci seznamu, aby byla zpracována jako poslední. Pokud jsou pravidla zástupných znaků v horní části seznamu, mají prioritu a budou zpracována jako první. Podívejte se na následující ukázkové scénáře.

Příklady

Zpracování pravidel na základě cesty při použití zástupných znaků (*):

Příklad 1:

/master-dev* to contoso.com

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

/master-dev/* to microsoft.com

Vzhledem k tomu, že cesta /master-dev* se zástupným znakem je přítomna nad podrobnějšími cestami, všechny požadavky klienta, které obsahují /master-dev , jsou směrovány do contoso.com, včetně konkrétního /master-dev/api-core/. Aby se zajistilo, že se požadavky klienta směrují do příslušných cest, je důležité mít podrobné cesty nad cestami se zástupnými cardy.

Příklad 2:

/ (default) to contoso.com

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

/master-dev/api to bing.com

/master-dev/* to microsoft.com

Všechny požadavky klientů se vzorem /master-dev/* cesty se zpracovávají v pořadí, jak je uvedeno. Pokud v pravidlech cesty není žádná shoda, požadavek se směruje do výchozího cíle.

Další informace najdete v šabloně Resource Manageru pomocí směrování na základě adresy URL.

Pravidlo PathBasedRouting

Pravidlo RequestRoutingRule typu PathBasedRouting slouží k vytvoření vazby mezi naslouchacím procesem a UrlPathMap. Všechny požadavky přijaté tímto naslouchacím procesem jsou směrovány na základě zásad zadaných v UrlPathMap. Fragment pravidla 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}"
    }

}
    }
]

Další kroky

Po získání informací o směrování obsahu na základě adresy URL přejděte k tématu Vytvoření služby Application Gateway používající směrování na základě adresy URL a vytvořte službu Application Gateway s pravidly směrování adres URL.