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.
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.