다음을 통해 공유


규칙 집합 작업

Azure Front Door 규칙 집합은 일치 조건 및 작업이 조합된 규칙으로 구성됩니다. 이 문서에서는 규칙 집합에서 사용할 수 있는 작업에 대해 자세히 설명합니다. 작업은 일치 조건이 식별하는 요청 형식에 적용되는 동작을 정의합니다. 규칙 집합에서 규칙에는 최대 5개의 작업이 있을 수 있습니다. Front Door는 규칙 집합 작업에서 서버 변수도 지원합니다.

다음은 규칙 집합에서 사용할 수 있는 작업입니다.

경로 구성 재정의

경로 구성 재정의 작업은 요청에 대한 원본 그룹 또는 캐싱 구성을 재정의하는 데 사용됩니다. 경로에 지정된 원본 그룹 구성을 재정의하거나 적용하도록 선택할 수 있습니다. 그러나 경로 구성을 재정의하는 경우 캐싱을 구성해야 합니다. 그렇지 않으면 요청에 대해 캐싱이 사용하지 않도록 설정됩니다.

다음을 포함하여 특정 요청에 대해 파일이 캐시되는 방식을 재정의할 수도 있습니다.

  • 원본에서 지정한 캐싱 동작을 재정의합니다.
  • 쿼리 문자열 매개 변수를 사용하여 요청의 캐시 키를 생성하는 방법입니다.
  • 콘텐츠가 캐시에 유지되는 기간을 제어하는 TTL(Time to Live) 값입니다.

속성

속성 지원되는 값
원본 그룹 재정의
  • 예: 요청에 사용된 원본 그룹을 재정의합니다.
  • 아니요: 경로에 지정된 원본 그룹을 사용합니다.
캐싱
  • 사용: 요청에 대해 강제로 캐싱을 사용하도록 설정합니다.
  • 사용 안 함: 요청에 대해 강제로 캐싱을 사용하지 않도록 설정합니다.

원본 그룹 재정의로 설정된 경우 다음 속성을 설정합니다.

속성 지원되는 값
원본 그룹 요청을 라우팅해야 하는 원본 그룹입니다. 이 설정은 Front Door 엔드포인트 경로에 지정된 구성을 재정의합니다.
전달 프로토콜 요청을 원본으로 전달할 때 Front Door가 사용할 프로토콜입니다. 지원되는 값은 HTTP 전용, HTTPS 전용, 수신 요청 일치입니다. 이 설정은 Front Door 엔드포인트 경로에 지정된 구성을 재정의합니다.

캐싱사용으로 설정된 경우 다음 속성을 설정합니다.

속성 지원되는 값
쿼리 문자열 캐시 동작
  • 쿼리 문자열 무시: 캐시 키가 생성되면 쿼리 문자열이 고려되지 않습니다. ARM 템플릿에서 queryStringCachingBehavior 속성을 IgnoreQueryString로 설정합니다.
  • 쿼리 문자열 사용: 각 고유 URL에는 고유한 캐시 키가 있습니다. ARM 템플릿에서 UseQueryStringqueryStringCachingBehavior을 사용합니다.
  • 지정된 쿼리 문자열 무시: 매개 변수에 지정된 쿼리 문자열은 캐시 키가 생성될 때 제외됩니다. ARM 템플릿에서 queryStringCachingBehavior 속성을 IgnoreSpecifiedQueryStrings로 설정합니다.
  • 지정된 쿼리 문자열 포함: 매개 변수에 지정된 쿼리 문자열은 캐시 키가 생성될 때 포함됩니다. ARM 템플릿에서 queryStringCachingBehavior 속성을 IncludeSpecifiedQueryStrings로 설정합니다.
쿼리 매개 변수 쉼표로 구분된 쿼리 문자열 매개 변수 이름 목록입니다. 이 속성은 쿼리 문자열 캐싱 동작지정된 쿼리 문자열 무시 또는 지정된 쿼리 문자열 포함으로 설정된 경우에만 설정됩니다.
압축
  • 사용: Front Door는 에지에서 콘텐츠를 동적으로 압축하여 더 작고 빠른 응답을 제공합니다. 자세한 내용은 파일 압축을 참조하세요. ARM 템플릿에서 isCompressionEnabled 속성을 Enabled로 설정합니다.
  • Disabled. Front Door는 압축을 수행하지 않습니다. ARM 템플릿에서 isCompressionEnabled 속성을 Disabled로 설정합니다.
캐시 동작
  • 원본 지킴: Front Door는 항상 원본 응답 헤더 지시문을 따릅니다. 원본 지시문이 누락된 경우 Front Door는 1일~3일의 콘텐츠를 캐시합니다. ARM 템플릿에서 cacheBehavior 속성을 HonorOrigin로 설정합니다.
  • 항상 재정의: 원본에서 반환된 TTL 값을 작업에 지정된 값으로 덮어씁니다. 이 동작은 응답을 캐시할 수 있는 경우에만 적용됩니다. ARM 템플릿에서 cacheBehavior 속성을 OverrideAlways로 설정합니다.
  • 원본이 누락된 경우 재정의: 원본에서 TTL 값이 반환되지 않으면 규칙 집합은 TTL을 작업에 지정된 값으로 설정합니다. 이 동작은 응답을 캐시할 수 있는 경우에만 적용됩니다. ARM 템플릿에서 cacheBehavior 속성을 OverrideIfOriginMissing로 설정합니다.
캐시 기간 캐시 동작Override always 또는 Override if origin missing로 설정된 경우 이러한 필드는 사용할 캐시 기간을 지정해야 합니다. 최대 기간은 366일입니다. 이 속성은 캐시 동작항상 재정의 또는 원본이 누락된 경우 재정의로 설정된 경우에만 설정됩니다.
  • Azure Portal: 일, 시, 분 및 초를 지정합니다.
  • ARM 템플릿: cacheDuration을 사용하여 d.hh:mm:ss 형식으로 기간을 지정합니다.

예제

이 예에서는 Front Door 엔드포인트 경로의 구성에 관계없이 일치하는 모든 요청을 MyOriginGroup이라는 원본 그룹으로 라우팅합니다.

원본 그룹 재정의 작업을 보여 주는 포털 스크린샷.

이 예에서는 customerId라는 쿼리 문자열 매개 변수를 포함하도록 캐시 키를 설정합니다. 압축이 사용하도록 설정되고 원본의 캐싱 정책이 적용됩니다.

캐시 키 쿼리 문자열 작업을 보여 주는 포털 스크린샷

이 예제에서는 캐시 기간을 아직 지정하지 않은 일치 요청에 대해 캐시 만료를 6시간으로 재정의합니다. Front Door는 캐시 키를 결정할 때 쿼리 문자열을 무시하고 압축이 사용하도록 설정됩니다.

캐시 만료 작업을 보여 주는 포털 스크린샷.

요청 헤더 수정

요청 헤더 수정 작업을 수행하여 요청의 헤더를 원본으로 보낼 때 이를 수정할 수 있습니다.

속성

속성 지원되는 값
연산자
  • 추가: 지정된 헤더는 지정된 값을 사용하여 요청에 추가됩니다. 헤더가 이미 있는 경우 문자열 연결을 사용하여 기존 헤더 값에 값이 추가됩니다. 구분 기호는 추가되지 않습니다. ARM 템플릿에서 AppendheaderAction을 사용합니다.
  • 덮어쓰기: 지정된 헤더는 지정된 값을 사용하여 요청에 추가됩니다. 헤더가 이미 있으면 지정한 값이 기존 값을 덮어씁니다. ARM 템플릿에서 OverwriteheaderAction을 사용합니다.
  • 삭제: 규칙에 지정된 헤더가 있으면 요청에서 헤더가 삭제됩니다. ARM 템플릿에서 DeleteheaderAction을 사용합니다.
헤더 이름 수정할 헤더의 이름입니다.
헤더 값 추가하거나 덮어쓸 값입니다.

예시

이 예제에서는 요청 헤더에 AdditionalValue 값을 MyRequestHeader 추가합니다. 원본 집합에서 응답 헤더를 ValueSetByClient 값으로 설정한 경우에는 이 작업이 적용된 후 요청 헤더에 ValueSetByClientAdditionalValue 값이 포함됩니다.

요청 헤더 수정 작업을 보여 주는 포털 스크린샷.

참고 항목

요청 헤더 및 응답 헤더를 수정하는 작업을 포함하여 규칙 엔진 작업을 사용하여 특정 Azure Front Door 예약 헤더를 수정할 수 없습니다. 다음 예약된 헤더 목록은 x-ecx-fd접두사로 지정된 헤더와 함께 수정할 수 없습니다.

  • Accept-Ranges
  • Host
  • Connection
  • Content-Length
  • Transfer-Encoding
  • TE
  • Last-Modified
  • Keep-Alive
  • Expect
  • Upgrade
  • If-Modified-Since
  • If-Unmodified-Since
  • If-None-Match
  • If-Match
  • Range
  • If-Range
  • X-Ms-Via
  • X-Ms-Force-Refresh
  • X-MSEdge-Ref
  • Warning
  • Forwarded
  • Via
  • X-Forwarded-For
  • X-Forwarded-Proto
  • X-Forwarded-Host
  • X-Azure-RequestChain
  • X-Azure-FDID
  • X-Azure-RequestChainv2
  • X-Azure-Ref

응답 헤더 수정

응답 헤더 수정 작업을 사용하여 응답에 있는 헤더를 클라이언트에 반환하기 전에 수정할 수 있습니다.

속성

속성 지원되는 값
연산자
  • 추가: 지정된 헤더는 지정된 값을 사용하여 응답에 추가됩니다. 헤더가 이미 있는 경우 문자열 연결을 사용하여 기존 헤더 값에 값이 추가됩니다. 구분 기호는 추가되지 않습니다. ARM 템플릿에서 AppendheaderAction을 사용합니다.
  • 덮어쓰기: 지정된 헤더는 지정된 값을 사용하여 응답에 추가됩니다. 헤더가 이미 있으면 지정한 값이 기존 값을 덮어씁니다. ARM 템플릿에서 OverwriteheaderAction을 사용합니다.
  • 삭제: 규칙에 지정된 헤더가 있으면 응답에서 헤더가 삭제됩니다. ARM 템플릿에서 DeleteheaderAction을 사용합니다.
헤더 이름 수정할 헤더의 이름입니다.
헤더 값 추가하거나 덮어쓸 값입니다.

예시

이 예제에서는 응답이 클라이언트에 반환되기 전에 응답에서 이름이 X-Powered-By인 헤더를 삭제합니다.

응답 헤더 수정 작업을 보여 주는 포털 스크린샷

참고 항목

요청 헤더 및 응답 헤더를 수정하는 작업을 포함하여 규칙 엔진 작업을 사용하여 특정 Azure Front Door 예약 헤더를 수정할 수 없습니다. 다음 예약된 헤더 목록은 x-ecx-fd접두사로 지정된 헤더와 함께 수정할 수 없습니다.

  • Accept-Ranges
  • Host
  • Connection
  • Content-Length
  • Transfer-Encoding
  • TE
  • Last-Modified
  • Keep-Alive
  • Expect
  • Upgrade
  • If-Modified-Since
  • If-Unmodified-Since
  • If-None-Match
  • If-Match
  • Range
  • If-Range
  • X-Ms-Via
  • X-Ms-Force-Refresh
  • X-MSEdge-Ref
  • Warning
  • Forwarded
  • Via
  • X-Forwarded-For
  • X-Forwarded-Proto
  • X-Forwarded-Host
  • X-Azure-RequestChain
  • X-Azure-FDID
  • X-Azure-RequestChainv2
  • X-Azure-Ref

URL 리디렉션

클라이언트를 새 URL로 리디렉션하려면 URL 리디렉션 작업을 수행합니다. 그러면 클라이언트가 Front Door의 리디렉션 응답으로 전송됩니다. Azure Front Door는 {url_path:seg#} 서버 변수를 사용하여 URL 경로의 동적 캡처를 지원하고 {url_path.tolower} 또는 {url_path.toupper}를 사용하여 URL 경로를 소문자 또는 대문자로 변환합니다. 자세한 내용은 서버 변수를 참조하세요.

속성

속성 지원되는 값
리디렉션 유형 요청자에게 반환할 응답 유형입니다.
  • Azure Portal: 찾음(302), 이동됨(301), 임시 리디렉션(307), 영구 리디렉션(308)
  • ARM 템플릿: Found, Moved, TemporaryRedirect, PermanentRedirect
리디렉션 프로토콜
  • Azure Portal: Match Request, HTTP, HTTPS
  • ARM 템플릿: MatchRequest, Http, Https
대상 호스트 요청을 리디렉션할 호스트 이름입니다. 들어오는 호스트를 유지하려면 비워 둡니다.
대상 경로 리디렉션에 사용할 경로입니다. 앞쪽 /를 포함합니다. 들어오는 경로를 유지하려면 비워 둡니다.
쿼리 문자열 리디렉션에 사용되는 쿼리 문자열입니다. 앞쪽 ?를 포함하지 마세요. 들어오는 쿼리 문자열을 유지하려면 비워 둡니다.
대상 조각 리디렉션에 사용할 조각입니다. 들어오는 조각을 유지하려면 비워 둡니다.

예시

이 예제에서는 조각을 유지하면서 요청을 https://contoso.com/exampleredirection?clientIp={client_ip}로 리디렉션합니다. HTTP 임시 리디렉션(307)이 사용됩니다. 클라이언트의 IP 주소는 client_ip 서버 변수를 사용하여 URL 내에서 {client_ip} 토큰 대신 사용됩니다.

URL 리디렉션 작업을 보여 주는 포털 스크린샷

URL 재작성

원본으로 라우팅하는 요청의 경로를 다시 쓰려면 URL 다시 쓰기 작업을 수행합니다. Azure Front Door는 {url_path:seg#} 서버 변수를 사용하여 URL 경로의 동적 캡처를 지원하고 {url_path.tolower} 또는 {url_path.toupper}를 사용하여 URL 경로를 소문자 또는 대문자로 변환합니다. 자세한 내용은 서버 변수를 참조하세요.

속성

속성 지원되는 값
원본 패턴 바꿀 URL 경로에 원본 패턴을 정의합니다. 현재 원본 패턴은 접두사 기반 일치를 사용합니다. 모든 URL 경로를 일치시키려면 원본 패턴 값으로 슬래시(/)를 사용합니다.
대상 다시 쓰기에 사용할 대상 경로를 정의합니다. 대상 경로는 원본 패턴을 덮어씁니다.
불일치한 경로 유지 로 설정된 경우 원본 패턴 뒤의 나머지 경로가 새 대상 경로에 추가됩니다.

예시

이 예제에서는 모든 요청을 /redirection 경로에 다시 쓰고 나머지 경로는 유지하지 않습니다.

URL 다시 쓰기 작업을 보여 주는 포털 스크린샷.

Important

Azure Front Door(클래식)는 2027년 3월 31일에 사용이 중지됩니다. 서비스가 중단되지 않도록 하려면 2027년 3월까지 Azure Front Door(클래식) 프로필을 Azure Front Door 표준 또는 프리미엄 계층으로 마이그레이션하는 것이 중요합니다. 자세한 내용은 Azure Front Door(클래식) 사용 중지를 참조하세요.

Azure Front Door(클래식)에서 규칙 엔진은 일치하는 조건 및 관련 작업을 포함하는 최대 25개의 규칙으로 구성될 수 있습니다. 이 문서에서는 규칙에서 정의할 수 있는 각 작업에 대한 자세한 설명을 제공합니다.

작업은 조건 또는 일치 조건 집합과 일치하는 요청 형식에 적용되는 동작을 정의합니다. 규칙 엔진 구성에서 규칙은 최대 10개의 일치 조건과 5개의 작업을 가질 수 있습니다. 단일 규칙에는 라우팅 구성 재정의 작업이 하나만 있을 수 있습니다.

규칙 엔진 구성에서 다음 작업을 사용할 수 있습니다.

요청 헤더 수정

이러한 작업을 사용하여 백 엔드로 전송된 요청에 있는 헤더를 수정합니다.

필수 필드

작업 HTTP 헤더 이름
추가 이 옵션이 선택되고 규칙이 일치하면 지정된 값을 사용하여 헤더 이름에 지정된 헤더가 요청에 추가됩니다. 헤더가 이미 있으면 값이 기존 값에 추가됩니다. 문자열
덮어쓰기 이 옵션이 선택되고 규칙이 일치하면 지정된 값을 사용하여 헤더 이름에 지정된 헤더가 요청에 추가됩니다. 헤더가 이미 있으면 지정한 값이 기존 값을 덮어씁니다. 문자열
삭제 이 옵션이 일치하는 규칙과 함께 선택되고 규칙에 지정된 헤더가 있으면 요청에서 헤더가 삭제됩니다. 문자열

응답 헤더 수정

이러한 작업을 사용하여 클라이언트에 반환된 응답에 있는 헤더를 수정합니다.

필수 필드

작업 HTTP 헤더 이름
추가 이 옵션이 선택되고 규칙이 일치하면 지정된 을 사용하여 헤더 이름에 지정된 헤더가 응답에 추가됩니다. 헤더가 이미 있으면 이 기존 값에 추가됩니다. 문자열
덮어쓰기 이 옵션이 선택되고 규칙이 일치하면 지정된 을 사용하여 헤더 이름에 지정된 헤더가 응답에 추가됩니다. 헤더가 이미 있으면 이 기존 값을 덮어씁니다. 문자열
삭제 이 옵션이 일치하는 규칙과 함께 선택되고 규칙에 지정된 헤더가 있으면 응답에서 헤더가 삭제됩니다. 문자열

경로 구성 재정의

경로 유형: 리디렉션

다음 작업을 사용하여 클라이언트를 새 URL로 리디렉션합니다.

필수 필드

필드 설명
리디렉션 유형 리디렉션은 한 URL에서 다른 URL로 사용자/클라이언트를 보내는 방법입니다. 리디렉션 형식은 리디렉션의 목적을 이해하기 위해 클라이언트가 사용하는 상태 코드를 설정합니다.

다음 리디렉션 상태 코드를 선택할 수 있습니다. 찾음(302), 이동됨(301), 임시 리디렉션(307) 및 영구 리디렉션(308).
리디렉션 프로토콜 들어오는 요청에 따라 프로토콜을 유지하거나 리디렉션을 위한 새 프로토콜을 정의합니다. 예를 들어 HTTP에서 HTTPS로 리디렉션에 대해 'HTTPS'를 선택합니다.
대상 호스트 리디렉션에 대한 URL의 호스트 이름을 변경하거나 들어오는 요청에서 호스트 이름을 유지하려면 이 값을 설정합니다.
대상 경로 들어오는 요청에 따라 경로를 유지하거나 리디렉션 URL의 경로를 업데이트하세요.
쿼리 문자열 들어오는 요청 URL에서 기존 쿼리 문자열을 바꾸거나 원래 쿼리 문자열 집합을 유지하려면 이 값을 설정합니다.
대상 조각 대상 조각은 '#' 뒤의 URL 부분으로, 일반적으로 브라우저에서 페이지의 특정 섹션으로 이동하는 데 사용됩니다. 리디렉션 URL에 조각을 추가하려면 이 값을 설정합니다.

경로 유형: 전달

다음 작업을 사용하여 클라이언트를 새 URL로 전달합니다. 이러한 작업에는 URL 다시 쓰기 및 캐싱에 대한 하위 작업도 포함됩니다.

필드 설명
백 엔드 풀 요청을 재정의하고 서비스할 백 엔드 풀을 선택하면 현재 Front Door 프로필에 있는 미리 구성된 백 엔드 풀이 모두 표시됩니다.
전달 프로토콜 백 엔드에 요청 전달에 사용하거나 들어오는 요청의 프로토콜과 일치시킬 프로토콜입니다.
URL 재작성 백 엔드에 전달할 URL 다시 쓰기 요청을 생성할 때 사용할 경로입니다.
캐싱 이 라우팅 규칙에 대해 캐싱을 사용하도록 설정합니다. 사용하도록 설정하면 Azure Front Door가 정적 콘텐츠를 캐시합니다.

URL 재작성

백 엔드로 전달하기 위한 요청을 구성할 때 사용할 선택적 사용자 지정 전달 경로를 구성하려면 이 설정을 사용합니다.

필드 설명
사용자 지정 전달 경로 요청이 전달될 경로를 정의합니다.

캐싱

이러한 설정을 사용하여 쿼리 문자열이 포함된 요청에 대해 파일이 캐시되는 방법을 제어합니다. 모든 매개 변수 또는 선택한 매개 변수에 따라 콘텐츠를 캐시하는지 여부입니다. 이러한 설정을 사용하여 TTL(Time to Live) 값을 덮어쓰고 콘텐츠가 캐시에 유지되는 기간을 제어할 수 있습니다. 강제로 캐싱 작업을 수행하려면 캐싱 필드를 "사용"으로 설정합니다. 강제로 캐싱하면 다음 옵션이 나타납니다.

캐시 동작 설명
쿼리 문자열 무시 자산이 캐시되면 캐시된 자산이 만료될 때까지 모든 후속 요청에서 쿼리 문자열을 무시합니다.
쿼리 문자열 사용 쿼리 문자열을 포함하여 고유한 URL이 포함된 각 요청이 자체 캐시가 있는 고유한 자산으로 처리됩니다.
지정된 쿼리 문자열 무시 "쿼리 매개 변수 설정"에 나열된 요청 URL 쿼리 문자열이 캐싱에서 무시됩니다.
지정된 쿼리 문자열 포함 "쿼리 매개 변수 설정"에 나열된 요청 URL 쿼리 문자열이 캐싱에 사용됩니다.
기타 필드 설명
동적 압축 Front Door에서 에지의 콘텐츠를 동적으로 압축하여 더 작고 빠른 응답을 생성할 수 있습니다.
쿼리 매개 변수 캐싱 기준으로 사용하도록 허용되거나 허용되지 않는 매개 변수를 쉼표로 구분한 목록입니다.
기본 캐시 기간 사용 Azure Front Door 기본 캐싱 기간을 사용하도록 설정하거나 원본 응답 지시문을 무시하는 캐싱 기간을 정의합니다.

다음 단계