다음을 통해 공유


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/testURL 다시 쓰기 대상 /{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입니다.

지원되는 규칙 집합 작업

서버 변수는 다음 규칙 집합 작업에서 지원됩니다.

다음 단계