다음을 통해 공유


Forward request

적용 대상: 모든 API Management 계층

forward-request 정책은 들어오는 요청을 요청 컨텍스트에 지정된 백 엔드 서비스에 전달합니다. 백 엔드 서비스 URL이 API 설정에 지정되며 백 엔드 서비스 설정 정책을 사용하여 변경할 수 있습니다.

Important

  • 이 정책은 요청을 API 백 엔드로 전달하는 데 필요합니다. 기본적으로 API Management는 전역 범위에서 이 정책을 설정합니다.
  • 이 정책을 제거하면 요청이 백 엔드 서비스로 전달되지 않습니다. 아웃바운드 섹션의 정책은 인바운드 섹션의 정책이 성공적으로 완료되는 즉시 평가됩니다.

Note

정책 문에 제공된 순서대로 정책의 요소 및 자식 요소를 설정합니다. API Management 정책을 설정하거나 편집하는 방법에 대해 자세히 알아봅니다.

Policy statement

<forward-request http-version="1 | 2or1 | 2" timeout="time in seconds (alternatively, use timeout-ms)" | timeout-ms="time in milliseconds (alternatively, use timeout)" continue-timeout="time in seconds" follow-redirects="false | true" buffer-request-body="false | true" buffer-response="true | false" fail-on-error-status-code="false | true"/>

Attributes

Attribute Description Required Default
timeout 시간 제한 오류가 발생하기 전에 백 엔드 서비스에서 HTTP 응답 헤더가 반환될 때까지 대기하는 시간(초)입니다. 최솟값은 0초입니다. 기본 네트워크 인프라가 이 시간 이후에 유휴 연결을 삭제할 수 있기 때문에 240초보다 큰 값은 적용할 수 없습니다. 정책 식이 허용됩니다. timeout 또는 timeout-ms를 지정할 수 있지만 둘 다 지정할 수는 없습니다. No 300
timeout-ms 시간 제한 오류가 발생하기 전에 백 엔드 서비스에서 HTTP 응답 헤더가 반환될 때까지 대기하는 시간(밀리초)입니다. 최솟값은 0ms입니다. 정책 식이 허용됩니다. timeout 또는 timeout-ms를 지정할 수 있지만 둘 다 지정할 수는 없습니다. No N/A
continue-timeout 시간 제한 오류가 발생하기 전에 백 엔드 서비스에서 100 Continue 상태 코드가 반환될 때까지 대기하는 시간(초)입니다. 정책 식이 허용됩니다. No N/A
http-version 백 엔드 서비스에 HTTP 요청을 보낼 때 사용할 HTTP 프로토콜 버전:
- 1: HTTP/1
- 2: HTTP/2
- 2or1: 게이트웨이는 HTTP/1보다 HTTP/2를 선호하지만 HTTP/2가 작동하지 않으면 HTTP/1로 대체됩니다.

HTTP/2 아웃바운드는 선택 게이트웨이에서 지원됩니다. 자세한 내용은 사용 현황 정보를 참조하세요.
No 1
follow-redirects 백 엔드 서비스의 리디렉션 뒤에 게이트웨이가 있는지 또는 호출자에게 반환되는지 여부를 지정합니다. 정책 식이 허용됩니다. No false
buffer-request-body true로 설정하면 요청이 버퍼링되고 다시 시도할 때 다시 사용됩니다. No false
buffer-response 청크 응답 처리에 영향을 미칩니다. false로 설정하면 백 엔드에서 받은 각 청크가 호출자에게 즉시 반환됩니다. true로 설정하면 청크가 버퍼링되고(스트림의 끝이 검색되지 않는 한 8KB) 호출자에게만 반환됩니다.

콘텐츠를 호출자에게 즉시 반환하거나 스트림해야 하는 false를 구현하는 것과 같은 백 엔드를 사용하여 로 설정합니다. 정책 식은 허용되지 않습니다.
No true
fail-on-error-status-code true로 설정하면 400~599(포함) 범위의 응답 코드에 대해 오류 발생 시 섹션이 트리거됩니다. 정책 식은 허용되지 않습니다. No false

Usage

Usage notes

  • http-version 특성을 사용하여 게이트웨이에서 백 엔드로 HTTP/2 프로토콜 아웃바운드를 사용하도록 설정합니다. 특성을 로 설정하거나 .로 설정합니다. 현재 HTTP/2 아웃바운드는 자체 호스팅 게이트웨이 및 v2 게이트웨이의 미리 보기에서 지원됩니다.

    Important

    v2 게이트웨이에서 HTTP/2는 API Management 게이트웨이에 대한 인바운드 및 게이트웨이에서 백 엔드로의 아웃바운드가 지원되지만 엔드투엔드는 지원되지 않습니다. 현재 v2 게이트웨이는 요청을 백 엔드로 전달하기 전에 들어오는 HTTP/2 연결을 HTTP/1로 다운그레이드합니다.

Examples

HTTP/2 백 엔드에 요청 보내기

다음 API 수준 정책은 모든 API 요청을 HTTP/2 백 엔드 서비스로 전달합니다. 예를 들어 이 정책을 사용하여 자체 호스팅 게이트웨이의 요청을 gRPC 백 엔드로 전달합니다.

<!-- api level -->
<policies>
    <inbound>
        <base/>
    </inbound>
    <backend>
        <forward-request http-version="2or1"/>
    </backend>
    <outbound>
        <base/>
    </outbound>
</policies>

시간 제한 간격으로 요청 전달

다음 API 레벨 정책은 60초의 시간 초과 간격으로 모든 API 요청을 백 엔드 서비스로 전달합니다.

<!-- api level -->
<policies>
    <inbound>
        <base/>
    </inbound>
    <backend>
        <forward-request timeout="60"/>
    </backend>
    <outbound>
        <base/>
    </outbound>
</policies>

부모 범위에서 정책 상속

이 작업 수준 정책은 base 요소를 사용하여 상위 API 수준 범위에서 백 엔드 정책을 상속합니다.

<!-- operation level -->
<policies>
    <inbound>
        <base/>
    </inbound>
    <backend>
        <base/>
    </backend>
    <outbound>
        <base/>
    </outbound>
</policies>

부모 범위에서 정책 상속하지 않음

이 작업 수준 정책은 120의 시간 초과로 모든 요청을 백 엔드 서비스로 명시적으로 전달하며 상위 API 수준 백 엔드 정책을 상속하지 않습니다. 백 엔드 서비스가 400~599(포함)의 오류 상태 코드로 응답하면 오류 발생 시 섹션이 트리거됩니다.

<!-- operation level -->
<policies>
    <inbound>
        <base/>
    </inbound>
    <backend>
        <forward-request timeout="120" fail-on-error-status-code="true" />
        <!-- effective policy. note the absence of <base/> -->
    </backend>
    <outbound>
        <base/>
    </outbound>
</policies>

백 엔드에 요청 전달 안 함

이 작업 수준 정책은 요청을 백 엔드 서비스로 전달하지 않습니다.

<!-- operation level -->
<policies>
    <inbound>
        <base/>
    </inbound>
    <backend>
        <!-- no forwarding to backend -->
    </backend>
    <outbound>
        <base/>
    </outbound>
</policies>

정책 작업에 대한 자세한 내용은 다음을 참조하세요.