엔드포인트 속성 참조

<ph type="x-smartling-placeholder"></ph> 현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서.
정보

이 주제에서는 메시지와 연결 동작을 제어하기 위해 TargetEndpoint 및 ProxyEndpoint 구성에서 설정할 수 있는 전송 속성에 대해 설명합니다. TargetEndpoint 및 ProxyEndpoint 구성의 전체 콘텐츠는 API 프록시 구성 참조를 확인하세요.

TargetEndpoint 전송 속성

TargetEndpoint 구성의 HTTPTargetConnection 요소는 HTTP 집합을 정의합니다. 속성입니다. 이러한 속성을 사용하여 전송 수준 구성을 설정할 수 있습니다.

속성은 아래와 같이 TargetEndpoint HTTPTargetConnection 요소에 설정됩니다.

<TargetEndpoint name="default">
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net</URL>
    <Properties>
      <Property name="supports.http10">true</Property>
      <Property name="request.retain.headers">User-Agent,Referer,Accept-Language</Property>
      <Property name="retain.queryparams">apikey</Property>
    </Properties>
    <CommonName>COMMON_NAME_HERE</CommonName>
  </HTTPTargetConnection>
</TargetEndpoint>

TargetEndpoint 전송 속성 사양

속성 이름 기본값 설명
keepalive.timeout.millis 60000 연결 풀에서 대상 연결의 연결 유휴 상태 제한 시간. 풀의 연결이 지정된 한도를 초과하여 유휴 상태이면 연결이 닫힙니다.
connect.timeout.millis

3000

대상 연결 제한 시간. 연결 시 Edge에서 HTTP 503 상태 코드를 반환합니다. 시간 초과가 발생합니다. 경우에 따라 LoadBalancer 오류 시 HTTP 504 상태 코드가 반환될 수 있습니다. TargetServer 정의에 사용됩니다. 제한 시간이 발생합니다

io.timeout.millis 55000

지정된 밀리초 동안 읽을 데이터가 없거나 지정된 밀리초 동안 소켓이 데이터를 작성할 준비가 되지 않은 경우, 트랜잭션이 시간 초과로 처리됩니다.

  • HTTP 요청을 작성하는 동안 시간 초과가 발생하면 408, Request Timeout이 반환됩니다.
  • HTTP 응답을 읽는 동안 시간 초과가 발생하면 504, Gateway Timeout 반환됩니다.

이 값은 항상 가상 호스트의 proxy_read_timeout 속성 값보다 작아야 합니다.

이 값은 메시지 프로세서와 통신하기 위한 라우터. 라우터 제한 시간 구성을 참조하세요. 자세히 알아보세요.

Edge용 io.timeout.millis 및 api.timeout 설정을 참조하세요. 확인하세요.

supports.http10 true 이 값이 true이고 클라이언트가 1.0 요청을 보내면 타겟에도 1.0이 전송됩니다. 합니다. 그 외의 경우 1.1 요청이 대상으로 전송됩니다.
supports.http11 true 이 값이 true이고 클라이언트가 1.1 요청을 보내면 타겟에도 1.1이 전송됩니다. 요청이 없으면 1.0 요청이 대상으로 전송됩니다.
use.proxy true 이것이 true로 설정되어 있고 프록시 구성이 http.properties(온프레미스 배포만 해당)에 지정된 경우 대상 연결이 지정된 프록시를 사용하도록 설정됩니다.
use.proxy.tunneling true 이것이 true로 설정되어 있고 프록시 구성이 http.properties(온프레미스 배포만 해당)에 지정된 경우 대상 연결이 지정된 터널을 사용하도록 설정됩니다. 대상이 TLS/SSL을 사용하는 경우 이 속성은 무시되며 항상 터널을 통해 전송됩니다.
enable.method.override false 지정된 HTTP 메서드의 경우 대상 서비스에 대한 아웃바운드 요청에서 X-HTTP-Method-Override 헤더를 설정합니다. 예를 들면 <Property name="GET.override.method">POST</Property>입니다.
*.override.method 해당 없음 지정된 HTTP 메서드의 경우 아웃바운드 요청에서 X-HTTP-Method-Override 헤더를 설정합니다. 예를 들면 <Property name="GET.override.method">POST</Property>입니다.
request.streaming.enabled false

기본적으로 (false) HTTP 요청 페이로드는 버퍼로 판독되며 작동할 수 있을 것입니다 페이로드가 10MB로 설정한 경우 속성을 true로 설정합니다. true이면 HTTP 요청 페이로드를 버퍼로 읽지 않습니다. 그들은 대상 엔드포인트에 있는 그대로 스트리밍됩니다 이 경우 TargetEndpoint 요청 흐름의 페이로드가 우회됩니다 스트리밍 요청 및 응답도 참조하세요.

response.streaming.enabled false

기본적으로 (false) HTTP 응답 페이로드는 버퍼로 읽으며, 작동할 수 있을 것입니다 페이로드가 10MB로 설정한 경우 속성을 true로 설정합니다. true인 경우 HTTP 응답 페이로드를 버퍼로 읽지 않습니다. 그들은 ProxyEndpoint 응답 흐름에 있는 그대로 스트리밍합니다. 이 경우 대상 엔드포인트 응답 흐름의 페이로드에서의 작업이 우회됩니다 참고 항목 스트리밍 요청과 응답을 참조하세요.

success.codes 해당 사항 없음

기본적으로 Apigee Edge는 HTTP 코드 4XX 또는 5XX를 오류로 처리하고 HTTP 코드를 처리합니다. 1XX, 2XX, 3XX 성공 이 속성을 사용하면 예를 들어 2XX, 1XX, 505100, 200, 505 HTTP 응답 코드를 성공입니다.

이 속성을 설정하면 기본값을 덮어씁니다. 따라서 기본 성공 코드 목록에 HTTP 코드 400을 추가하려면 이 속성을 다음과 같이 설정합니다.

&lt;Property name="success.codes">1XX,2XX,3XX,400</Property>

HTTP 코드 400만 성공 코드로 취급하려면 속성을 다음과 같이 설정합니다.

&lt;Property name="success.codes">400</Property>

HTTP 코드 400을 유일한 성공 코드로 설정하면 1XX, 2XX3XX 코드가 다음과 같이 됩니다. 실패로 처리됩니다

compression.algorithm 해당 사항 없음 기본적으로 Apigee Edge는 동일한 압축 유형을 사용하여 요청을 대상에 전달합니다. 를 클라이언트 요청으로 사용할 수 있습니다. gzip 등을 사용하여 클라이언트에서 요청을 수신하는 경우 그러면 Apigee Edge가 gzip 압축을 사용하여 요청을 대상으로 전달합니다. 만약 대상에서 수신된 응답이 deflate를 사용하는 경우 Apigee Edge가 응답을 deflate를 사용하여 클라이언트를 실행합니다 지원되는 값은 다음과 같습니다.
  • gzip: 항상 gzip 압축을 사용하여 메시지 전송
  • deflate: 항상 deflate 압축을 사용하여 메시지 전송
  • 없음: 항상 압축 없이 메시지 전송

참조: Apigee는 GZIP/압축 압축으로 압축/압축 해제를 지원하나요?

request.retain.headers.
enabled
true 기본적으로 Apigee Edge는 발신 메시지의 모든 HTTP 헤더를 항상 보관합니다. true로 설정하면 인바운드 요청에 있는 모든 HTTP 헤더가 아웃바운드 요청에 설정됩니다.
request.retain.headers 해당 사항 없음 대상 서비스에 대한 아웃바운드 요청에서 설정해야 하는 요청에서 특정 HTTP 헤더를 정의합니다. 예를 들어 User-Agent 헤더를 패스 스루하려면 request.retain.headers 값을 User-Agent로 설정합니다. 여러 HTTP 헤더는 쉼표로 구분된 목록(예: User-Agent,Referer,Accept-Language)으로 지정됩니다. 이 속성은 request.retain.headers.enabled를 재정의합니다. request.retain.headers.enabledfalse로 설정된 경우 request.retain.headers 속성에 지정된 헤더는 여전히 발신 메시지에 설정됩니다.
response.retain.headers.
enabled
true 기본적으로 Apigee Edge는 발신 메시지의 모든 HTTP 헤더를 항상 보관합니다. 설정된 경우 true로 전송 시 대상의 인바운드 응답에 있는 모든 HTTP 헤더 프록시 엔드포인트로 전달되기 전에 아웃바운드 응답에 서비스가 설정되어 있어야 합니다.
response.retain.headers 해당 없음 아웃바운드에 설정되어야 하는 특정 HTTP 헤더를 응답에서 정의합니다. 프록시 엔드포인트로 전달되기 전에 응답해야 합니다. 예를 들어 패스 스루 Expires 헤더에서 response.retain.headers의 값을 Expires입니다. 여러 HTTP 헤더는 쉼표로 구분된 목록으로 지정됩니다. 예를 들면 Expires,Set-Cookie입니다. 이 속성은 response.retain.headers.enabled를 재정의합니다. 만약 response.retain.headers.enabledfalse로 설정됨, 모든 헤더 response.retain.headers 속성에 지정된 모든 매개변수는 전송됩니다.
retain.queryparams.
enabled
true 기본적으로 Apigee Edge는 아웃바운드 요청에 항상 모든 쿼리 매개변수를 보관합니다. true로 설정하면 인바운드 요청에 있는 모든 쿼리 매개변수가 대상 서비스에 대한 아웃바운드 요청에 설정됩니다.
retain.queryparams 해당 사항 없음 아웃바운드 요청에 설정할 특정 쿼리 매개변수를 정의합니다. 예를 들어 요청 메시지의 쿼리 매개변수 apikey를 포함하려면 retain.queryparamsapikey로 설정합니다. 여러 쿼리 매개변수는 쉼표로 구분된 목록(예: apikey,environment)으로 지정됩니다. 이 속성은 retain.queryparams.enabled를 재정의합니다.

ProxyEndpoint 전송 속성

ProxyEndpoint HTTPTargetConnection 요소는 HTTP 전송 속성 집합을 정의합니다. 이러한 속성을 사용하여 전송 수준 구성을 설정할 수 있습니다.

속성은 다음과 같이 ProxyEndpoint HTTPProxyConnection 요소에 설정됩니다.

<ProxyEndpoint name="default">
  <HTTPProxyConnection>
    <BasePath>/v1/weather</BasePath>
    <Properties>
      <Property name="request.streaming.enabled">true</Property>
    </Properties>
    <VirtualHost>default</VirtualHost>
    <VirtualHost>secure</VirtualHost>
  </HTTPProxyConnection>
</ProxyEndpoint>

가상 호스트에 대한 상세 내용은 가상 호스트 정보를 참조하세요.

ProxyEndpoint 전송 속성 사양

속성 이름 기본값 설명
X-Forwarded-For false true로 설정하면 가상 호스트의 IP 주소가 아웃바운드 요청에 HTTP X-Forwarded-For 헤더의 값입니다.
request.streaming.
enabled
false 기본적으로 (false) HTTP 요청 페이로드는 버퍼로 읽으며, 작동하는 것을 확인할 수 있습니다. 페이로드가 10MB로 설정한 경우 속성을 true로 설정합니다. true이면 HTTP 요청 페이로드를 버퍼로 읽지 않습니다. 그들은 TargetEndpoint 요청 흐름에 있는 그대로 스트리밍됩니다 이 경우 프록시 엔드포인트의 요청 흐름에서 전송되는 페이로드가 우회됩니다 스트리밍 요청 및 응답도 참조하세요.
response.streaming.
enabled
false 기본적으로 (false) HTTP 응답 페이로드는 버퍼로 읽으며, 작동할 수 있을 것입니다 페이로드가 10MB로 설정한 경우 속성을 true로 설정합니다. true인 경우 HTTP 응답 페이로드를 버퍼로 읽지 않습니다. 그들은 그대로 클라이언트에게 스트리밍됩니다 이 경우 ProxyEndpoint 응답 흐름을 우회합니다. 스트리밍 요청 및 응답도 참조하세요.
compression.algorithm 해당 없음

기본적으로 Apigee Edge는 수신된 모든 메시지에 설정된 압축 유형을 적용합니다. 대상 클라이언트가 gzip 압축을 사용하는 요청을 제출하는 경우 Apigee Edge는 gzip 압축을 사용하여 대상에 요청을 전달합니다 압축을 구성할 수 있습니다. TargetEndpoint 또는 타겟 엔드포인트에서 이 속성을 설정하여 명시적으로 적용할 알고리즘 ProxyEndpoint를 선택합니다. 지원되는 값은 다음과 같습니다.

  • gzip: 항상 gzip 압축을 사용하여 메시지 전송
  • deflate: 항상 deflate 압축을 사용하여 메시지 전송
  • 없음: 항상 압축 없이 메시지 전송

참조: Apigee는 GZIP/압축 압축으로 압축/압축 해제를 지원하나요?

api.timeout 해당 사항 없음

개별 API 프록시의 시간 제한 구성

스트리밍이 사용 설정되어 있더라도 504 Gateway Timeout 상태를 이용해 지정한 시간이 지나면 타임아웃되도록 API 프록시를 구성할 수 있습니다. 기본 사용 사례는 API 프록시가 있는 고객을 위한 것입니다. 더 오래 걸릴 수 있습니다 예를 들어 3분에 타임아웃되도록 특정 프록시가 필요하다고 가정해 보겠습니다. 합니다. 다음은 api.timeout을 사용하는 방법입니다.

  1. 먼저 3분 부하 분산기, 라우터, 메시지 프로세서가 타임아웃되도록 구성해야 합니다.
  2. 그런 다음 관련 3분 안에 프록시가 타임아웃되도록 구성합니다. 에 값 지정 밀리초 단위입니다. 예: <Property name="api.timeout">180000</Property>
  3. 그러나 시스템 시간 제한을 늘리면 api.timeout 설정이 없는 모든 프록시가 새로운 상위 부하 분산기, 라우터, 메시지 프로세서 시간 제한을 사용하므로 성능 문제가 발생할 수 있습니다. 따라서 더 짧은 시간 제한을 사용하기 위해 더 이상 시간 제한이 필요 없는 다른 API 프록시를 구성합니다. 예를 들어 다음은 1분 후 API 프록시가 시간 초과되도록 설정합니다.
    <Property name="api.timeout">60000</Property>

이 속성은 변수로 설정할 수 없습니다.

에지 시간 제한을 수정할 수 없는 고객은 API 프록시를 구성할 수도 있습니다. 제한 시간(제한 시간이 표준 에지 메시지 프로세서보다 짧은 경우) 57초로 설정합니다

Edge용 io.timeout.millis 및 api.timeout 설정을 참조하세요. 확인하세요.

Edge에 io.timeout.millis 및 api.timeout 설정

Edge에서 io.timeout.millisapi.timeout의 작업 관련이 있습니다. API 프록시에 대한 모든 요청에서 다음을 실행합니다.

  1. 라우터는 제한 시간 값을 메시지 프로세서로 보냅니다. 라우터 시간 제한 값은 다음 중 하나입니다. 가상 호스트에서 설정된 proxy_read_timeout의 값 기본 제한 시간 값 57초입니다.
  2. 그런 다음 메시지 프로세서가 api.timeout를 설정합니다.
    1. api.timeout이 프록시 수준에서 설정되어 있지 않은 경우 라우터 제한 시간으로 설정합니다.
    2. api.timeout이 프록시 수준에서 설정되어 있으면 메시지 프로세서에서 라우터 제한 시간 또는 api.timeout 값 중 더 짧은 것입니다.
  3. api.timeout 값은 API 요청에서 응답에 이르기까지 API 프록시가 실행되어야 하는 최대 시간을 지정합니다.

    API 프록시의 각 정책이 실행되면 또는 메시지 프로세서가 요청을 대상 엔드포인트로 보내기 전에 메시지 프로세서가 계산합니다 (api.timeout - 요청 시작 후 경과된 시간). 값이 0보다 작으면 요청을 처리할 수 있는 최대 시간이 만료되었으며 메시지 프로세서가 504를 반환합니다.

  4. io.timeout.millis 값은 대상 엔드포인트가 응답해야 합니다

    대상 엔드포인트에 연결하기 전에 메시지 프로세서는 대상 엔드포인트에 연결하기 전에 (api.timeout - 요청 시작 시점부터 경과된 시간) 및 io.timeout.millis. 그런 다음 io.timeout.millis를 해당 값으로 설정합니다.

    • HTTP 요청을 작성하는 동안 시간 초과가 발생하면 408, Request Timeout가 반환됩니다.
    • HTTP 응답을 읽는 동안 시간 초과가 발생하면 504, Gateway Timeout 반환됩니다.

Node.js 애플리케이션용 ScriptTarget 정보

ScriptTarget 요소는 Node.js 애플리케이션을 프록시에 통합하는 데 사용됩니다. 대상 Node.js 및 ScriptTarget 사용에 대한 자세한 내용은 다음을 참조하세요.

HostedTarget 엔드포인트 정보

<HostedTarget/> 태그는 Edge에 Node.js를 대상으로 사용하도록 지시합니다. 애플리케이션을 배포하는 데 사용할 수 있습니다. 자세한 내용은 호스팅된 대상 개요.