Udostępnij za pośrednictwem


Routing oparty na ścieżkach URL — omówienie

Routing oparty na ścieżkach URL umożliwia kierowanie ruchu do pul serwerów zaplecza na podstawie ścieżek URL żądania.

Jeden ze scenariuszy polega na kierowaniu żądań dla różnych typów zawartości do różnych pól serwerów zaplecza.

W poniższym przykładzie usługa Application Gateway obsługuje ruch dla contoso.com z trzech pul serwerów zaplecza, na przykład: VideoServerPool, ImageServerPool i DefaultServerPool.

imageURLroute

Żądania dotyczące adresu http://contoso.com/video/* są kierowane do puli VideoServerPool, a żądania dotyczące adresu http://contoso.com/images/* — do puli ImageServerPool. Pula DefaultServerPool jest wybierana, jeśli żaden z wzorców ścieżki nie pasuje.

Uwaga

Po skierowaniu żądania pełna ścieżka adresu URL jest wysyłana do puli zaplecza. Jeśli żądane zasoby znajdują się w innej ścieżce (na przykład jeśli żądanie do http://contoso.com/video/* wymaga, aby filmy wideo zostały obsłużone z katalogu głównego witryny za buforem VideoServerPool), musisz również skonfigurować regułę ponownego zapisywania adresów URL lub zastąpić ścieżkę zaplecza w ustawieniach zaplecza.

Ważne

W przypadku jednostek SKU w wersji 1 i 2 reguły są przetwarzane w kolejności, w której są wyświetlane w portalu. Najlepszym rozwiązaniem podczas tworzenia reguł ścieżki jest posiadanie najmniejszej określonej ścieżki (z symbolami wieloznacznymi) na końcu. Jeśli symbole wieloznaczne znajdują się u góry, mają priorytet, nawet jeśli w kolejnych regułach ścieżki występuje bardziej szczegółowe dopasowanie.

Jeśli podstawowy odbiornik znajduje się na początku listy i jest zgodny z żądaniem przychodzącym, jest ono przetwarzane przez ten odbiornik. Jednak zdecydowanie zaleca się najpierw skonfigurowanie odbiorników z wieloma lokacjami przed skonfigurowaniem podstawowego odbiornika. Zapewnia to skierowanie ruchu do odpowiedniego zaplecza.

Element konfiguracji UrlPathMap

Element urlPathMap służy do określania wzorców ścieżki do mapowań puli serwerów zaplecza. Poniższy przykład kodu jest fragmentem elementu urlPathMap z pliku szablonu.

"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 to lista wzorców ścieżek do dopasowania. Każda ścieżka musi zaczynać się od / i może używać * jako symbolu wieloznacznych. Ciąg podawany do elementu matcher ścieżki nie zawiera żadnego tekstu po pierwszym ? lub #, a te znaki nie są tutaj dozwolone. W przeciwnym razie wszelkie znaki dozwolone w adresie URL są dozwolone w ścieżce PathPattern.

Reguły ścieżki są niewrażliwe na wielkość liter.

Wzorzec ścieżki Czy jest obsługiwana?
/images/* tak
/images* tak
/images/*.jpg nie
/*.jpg nie
/Repos/*/Comments/* nie
/CurrentUser/Comments/* tak

Reguły ścieżki są przetwarzane w kolejności na podstawie sposobu ich wyświetlania w portalu. Najmniej określona ścieżka (z symbolami wieloznacznymi) powinna znajdować się na końcu listy, aby była ona przetwarzana jako ostatnia. Jeśli w górnej części listy znajdują się reguły symboli wieloznacznych, będą traktowane priorytetowo i będą przetwarzane jako pierwsze. Zapoznaj się z poniższymi przykładowymi scenariuszami.

Przykłady

Przetwarzanie reguł opartych na ścieżkach, gdy jest używany symbol wieloznaczny (*):

Przykład 1:

/master-dev* to contoso.com

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

/master-dev/* to microsoft.com

Ponieważ ścieżka /master-dev* wieloznaczna znajduje się powyżej bardziej szczegółowych ścieżek, wszystkie żądania klientów zawierające /master-dev są kierowane do contoso.com, w tym do określonego /master-dev/api-core/elementu . Aby upewnić się, że żądania klienta są kierowane do odpowiednich ścieżek, kluczowe jest posiadanie szczegółowych ścieżek powyżej ścieżek wieloznacznych.

Przykład 2:

/ (default) to contoso.com

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

/master-dev/api to bing.com

/master-dev/* to microsoft.com

Wszystkie żądania klientów ze wzorcem /master-dev/* ścieżki są przetwarzane w kolejności wymienionej. Jeśli w regułach ścieżki nie ma dopasowania, żądanie jest kierowane do domyślnego obiektu docelowego.

Aby uzyskać więcej informacji, zobacz Szablon usługi Resource Manager przy użyciu routingu opartego na adresach URL.

Reguła PathBasedRouting

Reguła RequestRoutingRule typu PathBasedRouting jest używana do powiązania odbiornika z elementem urlPathMap. Wszystkie żądania otrzymane dla tego odbiornika są kierowane zgodnie z zasadami określonymi w elemencie urlPathMap. Fragment reguły 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}"
    }

}
    }
]

Następne kroki

Po zapoznaniu się z informacjami na temat routingu zawartości opartego na adresach URL skorzystaj z informacji dotyczących tworzenia bramy aplikacji przy użyciu routingu opartego na adresach URL, aby utworzyć bramę aplikacji za pomocą reguł routingu adresów URL.