다음을 통해 공유


URL 경로 기반 라우팅 개요

URL 경로 기반 라우팅을 사용하여 요청의 URL 경로에 따라 트래픽을 백 엔드 서버 풀로 라우팅할 수 있습니다.

시나리오 중 하나는 여러 콘텐츠 형식에 대한 요청을 서로 다른 백 엔드 서버 풀로 라우팅하는 것입니다.

다음 예에서는 Application Gateway가 세 개의 백 엔드 서버 풀(예: VideoServerPool, ImageServerPool 및 DefaultServerPool)에서 contoso.com에 대한 트래픽을 제공합니다.

imageURLroute

http://contoso.com/video/* 에 대한 요청은 VideoServerPool로 라우팅되고, http://contoso.com/images/* 에 대한 요청은 ImageServerPool로 라우팅됩니다. 경로 패턴과 일치하는 항목이 없는 경우 DefaultServerPool이 선택됩니다.

참고 항목

요청이 라우팅되면 전체 URL 경로가 백 엔드 풀로 전송됩니다. 요청된 리소스가 다른 경로에 있는 경우(예: http://contoso.com/video/*에 대한 요청이 VideoServerPool 뒤의 사이트 루트에서 동영상을 제공해야 하는 경우), URL 다시 쓰기 규칙을 구성하거나 백 엔드 설정에서 백 엔드 경로를 재정의해야 합니다.

Important

v1 및 v2 SKU의 경우 규칙은 포털에 나열된 순서대로 처리됩니다. 경로 규칙을 만들 때 가장 좋은 방법은 마지막에 가장 구체적인 경로(와일드카드가 있는 경로)를 지정하는 것입니다. 와일드카드가 맨 위에 있는 경우 후속 경로 규칙에 더 구체적으로 일치하는 항목이 있더라도 우선 순위를 갖습니다.

기본 수신기가 먼저 나열되고 들어오는 요청과 일치하면 해당 수신기에서 처리합니다. 그러나 기본 수신기를 구성하기 전에 먼저 다중 사이트 수신기를 구성하는 것이 좋습니다. 그러면 트래픽이 올바른 백 엔드로 라우팅됩니다.

UrlPathMap 구성 요소

urlPathMap 요소는 백 엔드 서버 풀 매핑에 대한 경로 패턴을 지정하는 데 사용됩니다. 다음 코드 예제는 템플릿 파일의 urlPathMap 요소 조각입니다.

"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은 일치시킬 경로 패턴의 목록입니다. 각 경로는 /로 시작해야 하며 *를 와일드카드 문자로 사용할 수 있습니다. 경로 일치자에 제공되는 문자열은 첫 번째 ? 또는 # 이후의 텍스트를 포함하지 않으며 이러한 문자는 여기에서 허용되지 않습니다. 그렇지 않은 경우 URL에 허용되는 모든 문자는 PathPattern에서 사용됩니다.

경로 규칙은 대/소문자를 구분하지 않습니다.

경로 패턴 지원 여부
/images/*
/images*
/images/*.jpg no
/*.jpg 아니요
/Repos/*/Comments/* 아니요
/CurrentUser/Comments/*

경로 규칙은 포털에 나열되는 방식에 따라 순서대로 처리됩니다. 가장 구체적이지 않은 경로(와일드카드 포함)는 목록의 끝에 있어야 마지막으로 처리됩니다. 와일드카드 규칙이 목록 맨 위에 있는 경우 우선 순위를 지정하고 먼저 처리됩니다. 다음과 같은 예제 시나리오를 참조하세요.

예제

와일드카드(*) 사용 시 경로 기반 규칙 처리:

예제 1:

/master-dev* to contoso.com

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

/master-dev/* to microsoft.com

와일드카드 경로 /master-dev*는 보다 세분화된 경로 위에 있으므로 /master-dev를 포함하는 모든 클라이언트 요청은 특정 /master-dev/api-core/를 포함하여 contoso.com으로 라우팅됩니다. 클라이언트 요청이 적절한 경로로 라우팅되도록 하려면 와일드카드 경로 위에 세분화된 경로를 두는 것이 중요합니다.

예 2:

/ (default) to contoso.com

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

/master-dev/api to bing.com

/master-dev/* to microsoft.com

경로 패턴이 /master-dev/*인 모든 클라이언트 요청은 나열된 순서대로 처리됩니다. 경로 규칙 내에 일치하는 항목이 없으면 요청이 기본 대상으로 라우팅됩니다.

자세한 내용은 URL 기반 라우팅을 사용하는 Resource Manager 템플릿을 참조하세요.

PathBasedRouting 규칙

PathBasedRouting 형식의 RequestRoutingRule은 수신기를 urlPathMap에 바인딩하는 데 사용됩니다. 이 수신기에 대해 수신되는 모든 요청은 urlPathMap에 지정된 정책에 따라 라우팅됩니다. 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}"
    }

}
    }
]

다음 단계

URL 기반 콘텐츠 라우팅을 알아본 후에는 URL 기반 라우팅을 사용하여 애플리케이션 게이트웨이 만들기로 이동하여 URL 라우팅 규칙을 사용하여 애플리케이션 게이트웨이를 만듭니다.