Azure Front Door 규칙 집합 서버 변수
규칙 집합 서버 변수는 규칙 집합으로 작업할 때 요청에 대한 구조화된 정보에 대한 액세스를 제공합니다.
규칙 집합 일치 조건을 사용하면 특정 속성이 있는 요청을 식별할 수 있도록 서버 변수를 일치 조건으로 사용할 수 있습니다.
규칙 집합 작업을 사용하면 예를 들어 새 페이지가 로드되거나 양식이 게시될 때 서버 변수를 사용하여 요청 및 응답 헤더를 동적으로 변경하고 URL, 경로 및 쿼리 문자열을 다시 작성할 수 있습니다.
참고 항목
서버 변수는 Azure Front Door 표준 및 프리미엄 계층에서 사용할 수 있습니다.
지원되는 변수
변수 이름 | 설명 |
---|---|
socket_ip |
Azure Front Door 에지에 대한 직접 연결의 IP 주소입니다. 클라이언트에서 HTTP 프록시 또는 부하 분산 장치를 사용하여 요청을 보낸 경우 socket_ip 의 값은 프록시 또는 부하 분산 장치의 IP 주소입니다.일치 조건에서 이 서버 변수에 액세스하려면 소켓 주소를 사용합니다. |
client_ip |
원본에서 요청한 클라이언트의 IP 주소입니다. 요청에 X-Forwarded-For 헤더가 있으면 헤더에서 클라이언트 IP 주소가 선택됩니다.일치 조건에서 이 서버 변수에 액세스하려면 원격 주소를 사용하고 연산자를 IP가 일치함 또는 IP가 일치하지 않음으로 구성합니다. |
client_port |
요청한 클라이언트의 IP 포트입니다. 일치 조건에서 이 서버 변수에 액세스하려면 클라이언트 포트를 사용합니다. |
hostname |
클라이언트의 요청에 있는 호스트 이름입니다. 일치 조건에서 이 서버 변수에 액세스하려면 호스트 이름을 사용합니다. |
geo_country |
해당 국가/지역 코드를 통해 요청자의 원산 국가/지역을 나타냅니다. 일치 조건에서 이 서버 변수에 액세스하려면 원격 주소를 사용하고 연산자를 지역이 일치함 또는 지역이 일치하지 않음으로 구성합니다. |
http_method |
URL을 요청하는 데 사용되는 메서드(예: GET 또는 POST )입니다.일치 조건에서 이 서버 변수에 액세스하려면 요청 메서드를 사용합니다. |
http_version |
요청 프로토콜입니다. 일반적으로, HTTP/1.0 HTTP/1.1 또는 HTTP/2.0 입니다.일치 조건에서 이 서버 변수에 액세스하려면 HTTP 버전을 사용합니다. |
query_string |
요청된 URL에서 ? 뒤에 오는 변수/값 쌍 목록입니다.예를 들어 요청 http://contoso.com:8080/article.aspx?id=123&title=fabrikam 에서 query_string 값은 id=123&title=fabrikam 입니다.일치 조건에서 이 서버 변수에 액세스하려면 쿼리 문자열을 사용합니다. |
request_scheme |
요청 체계는 http 또는 https 입니다.일치 조건에서 이 서버 변수에 액세스하려면 요청 프로토콜을 사용합니다. |
request_uri |
전체 원래 요청 URI(인수 포함)입니다. 예를 들어 요청 http://contoso.com:8080/article.aspx?id=123&title=fabrikam 에서 request_uri 값은 http://contoso.com:8080/article.aspx?id=123&title=fabrikam 입니다.일치 조건에서 이 서버 변수에 액세스하려면 요청 URL을 사용합니다. |
ssl_protocol |
설정된 TLS 연결의 프로토콜입니다. 일치 조건에서 이 서버 변수에 액세스하려면 SSL 프로토콜을 사용합니다. |
server_port |
요청을 수락한 서버의 포트입니다. 일치 조건에서 이 서버 변수에 액세스하려면 서버 포트를 사용합니다. |
url_path |
웹 클라이언트에서 액세스할 호스트의 특정 리소스를 식별합니다. 이는 인수 또는 선행 슬래시가 없는 요청 URI의 일부입니다. 예를 들어 요청 http://contoso.com:8080/article.aspx?id=123&title=fabrikam 에서 url_path 값은 article.aspx 입니다. Azure Front Door는 {url_path:seg#} 서버 변수를 사용하여 URL 경로의 동적 캡처를 지원하고 {url_path.tolower} 또는 {url_path.toupper} 를 사용하여 URL 경로를 소문자 또는 대문자로 변환합니다. 자세한 내용은 서버 변수 형식 및 서버 변수를 참조하세요. 일치 조건에서 이 서버 변수에 액세스하려면 요청 경로 조건을 사용합니다. |
서버 변수 형식
규칙 집합 작업으로 작업할 때 다음 형식을 사용하여 서버 변수를 지정합니다.
{variable}
: 전체 서버 변수를 포함합니다. 예를 들어 클라이언트 IP 주소가111.222.333.444
이면{client_ip}
토큰이111.222.333.444
로 평가됩니다.{variable:offset}
: 변수 끝 부분까지 특정 오프셋 뒤에 서버 변수를 포함합니다. 오프셋은 0부터 시작합니다. 예를 들어 클라이언트 IP 주소가111.222.333.444
이면{client_ip:3}
토큰이.222.333.444
로 평가됩니다.{variable:offset:length}
: 지정된 길이까지 특정 오프셋 뒤에 서버 변수를 포함합니다. 오프셋은 0부터 시작합니다. 예를 들어, 변수 var가 'AppId=01f592979c584d0f9d679db3e66a3e5e'인 경우,- 범위 내 오프셋, 길이 없음:
{var:0}
=AppId=01f592979c584d0f9d679db3e66a3e5e
,{var:6}
=01f592979c584d0f9d679db3e66a3e5e
,{var:-8}
=e66a3e5e
- 범위를 벗어난 오프셋, 길이 없음:
{var:-128}
=AppId=01f592979c584d0f9d679db3e66a3e5e
,{var:128}
= null - 범위 내 오프셋 및 길이:
{var:0:5}
=AppId
,{var:7:7}
=1f59297
,{var:7:-7}
=1f592979c584d0f9d679db3e
- 길이 0:
{var:0:0}
= null,{var:4:0}
= null - 범위 내 오프셋 및 범위를 벗어난 길이:
{var:0:100}
=AppId=01f592979c584d0f9d679db3e66a3e5e
,{var:5:100}
==01f592979c584d0f9d679db3e66a3e5e
,{var:0:-48}
= null,{var:4:-48}
= null
- 범위 내 오프셋, 길이 없음:
{url_path:seg#}
: 사용자가 URL 리디렉션, URL 다시 쓰기 또는 의미 있는 작업에서 원하는 URL 패스 세그먼트를 캡처하고 사용할 수 있도록 허용합니다. 사용자는 하위 문자열 캡처{url_path:seg1:3}
과 동일한 스타일을 사용하여 여러 세그먼트를 캡처할 수도 있습니다. 예를 들어, 원본 패턴/id/12345/default
및 URL 다시 쓰기 대상/{url_path:seg1}/home
의 경우 재작성 후 예상되는 URL 경로는/12345/home
입니다. 다중 세그먼트 캡처의 경우 원본 패턴이 있는 경우/id/12345/default/location/test
URL 다시 쓰기 대상/{url_path:seg1:3}/home
은/12345/default/location/home
. 세그먼트 캡처에는 위치 경로가 포함되므로 경로가/match/*
이면 세그먼트 0이 일치합니다.오프셋은 시작 세그먼트의 인덱스에 해당하며 길이는 인덱스 = 오프셋인 세그먼트를 포함하여 캡처할 세그먼트 수를 나타냅니다.
오프셋과 길이가 양수라고 가정하면 다음 논리가 적용됩니다.
- 길이가 포함되지 않은 경우 인덱스 = 오프셋에서 세그먼트를 캡처합니다.
- 길이가 포함된 경우 인덱스 = 오프셋부터 인덱스 = 오프셋 + 길이까지 세그먼트를 캡처합니다.
다음 특수한 사례도 처리됩니다.
- 오프셋이 음수이면 경로 끝에서 뒤로 계산하여 시작 세그먼트를 가져옵니다.
- 오프셋이 세그먼트 수보다 크거나 그와 같은 음수 값이면 0으로 설정합니다.
- 오프셋이 세그먼트 수보다 크면 결과는 비어 있습니다.
- 길이가 0이면 오프셋으로 지정된 단일 세그먼트를 반환합니다.
- 길이가 음수이면 두 번째 오프셋으로 처리하고 경로 끝에서 뒤로 계산합니다. 값이 오프셋보다 작으면 빈 문자열이 생성됩니다.
- 길이가 세그먼트 수보다 크면 경로에 남아 있는 내용을 반환합니다.
{url_path.tolower}
/{url_path.toupper}
: URL 경로를 소문자 또는 대문자로 변환합니다. 예를 들어,/lowercase/ABcDXyZ/EXAMPLE
에 대한 URL 다시 쓰기/리디렉션의 대상{url_path.tolower}
는/lowercase/abcdxyz/example
이 됩니다./ABcDXyZ/example
에 대한 URL 다시 쓰기/리디렉션의 대상{url_path.toupper}
는/ABCDXYZ/EXAMPLE
입니다.
지원되는 규칙 집합 작업
서버 변수는 다음 규칙 집합 작업에서 지원됩니다.
다음 단계
- Azure Front Door 규칙 집합에 대해 자세히 알아보기
- 규칙 집합 일치 조건에 대해 자세히 알아보기
- 규칙 집합 작업에 대해 알아봅니다.