현재 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 |
|
대상 연결 제한 시간. 연결 제한 시간이 발생하면 Edge는 HTTP |
io.timeout.millis |
55000 |
지정된 밀리초 동안 읽을 데이터가 없거나 지정된 밀리초 동안 소켓이 데이터를 작성할 준비가 되지 않은 경우, 트랜잭션이 시간 초과로 처리됩니다.
이 값은 항상 가상 호스트의 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 |
N/A | 지정된 HTTP 메서드의 경우 아웃바운드 요청에서 X-HTTP-Method-Override 헤더를 설정합니다. 예를 들면 <Property
name="GET.override.method">POST</Property> 입니다. |
request.streaming.enabled |
false |
기본적으로 ( |
response.streaming.enabled |
false |
기본적으로 ( |
success.codes |
N/A |
기본적으로 Apigee Edge는 HTTP 코드 이 속성을 설정하면 기본값을 덮어씁니다. 따라서 기본 성공 코드 목록에 HTTP 코드 <Property name="success.codes">1XX,2XX,3XX,400</Property> HTTP 코드 <Property name="success.codes">400</Property> HTTP 코드 |
compression.algorithm |
N/A |
기본적으로 Apigee Edge는 클라이언트 요청과 동일한 압축 유형을 사용하여 대상에 요청을 전달합니다. 요청이 클라이언트로부터 gzip 압축 등을 사용하여 수신되면 Apigee Edge는 gzip 압축을 사용하여 요청을 대상으로 전달합니다. 대상에서 수신된 응답이 deflate를 사용하는 경우 Apigee Edge는 deflate를 사용하여 응답을 클라이언트에 전달합니다. 지원되는 값은 다음과 같습니다.
|
request.retain.headers. |
true |
기본적으로 Apigee Edge는 발신 메일의 모든 HTTP 헤더를 항상 보관합니다. true 로 설정하면 인바운드 요청에 있는 모든 HTTP 헤더가 아웃바운드 요청에 설정됩니다. |
request.retain.headers |
N/A | 대상 서비스에 대한 아웃바운드 요청에서 설정해야 하는 요청에서 특정 HTTP 헤더를 정의합니다. 예를 들어 User-Agent 헤더를 패스 스루하려면 request.retain.headers 값을 User-Agent 로 설정합니다.
여러 HTTP 헤더는 쉼표로 구분된 목록(예: User-Agent,Referer,Accept-Language )으로 지정됩니다. 이 속성은 request.retain.headers.enabled 를 재정의합니다. request.retain.headers.enabled 가 false 로 설정된 경우 request.retain.headers 속성에 지정된 헤더는 여전히 발신 메시지에 설정됩니다. |
response.retain.headers. |
true |
기본적으로 Apigee Edge는 발신 메일의 모든 HTTP 헤더를 항상 보관합니다. true 로 설정하면 대상 서비스의 인바운드 응답에 있는 모든 HTTP 헤더가 아웃바운드 응답에 설정된 후 ProxyEndpoint로 전달됩니다. |
response.retain.headers |
N/A | ProxyEndpoint로 전달되기 전에 아웃바운드 응답에 설정해야 하는 응답의 특정 HTTP 헤더를 정의합니다. 예를 들어 Expires 헤더를 패스 스루하려면 response.retain.headers 의 값을 Expires 로 설정합니다. 여러 HTTP 헤더는 쉼표로 구분된 목록으로 지정됩니다(예: Expires,Set-Cookie ). 이 속성은 response.retain.headers.enabled 를 재정의합니다. response.retain.headers.enabled 를 false 로 설정할 경우 response.retain.headers 속성에 지정된 모든 헤더가 발신 메일에 계속 설정됩니다. |
retain.queryparams. |
true |
기본적으로 Apigee Edge는 아웃바운드 요청의 모든 쿼리 매개변수를 항상 유지합니다. true 로 설정하면 인바운드 요청에 있는 모든 쿼리 매개변수가 대상 서비스에 대한 아웃바운드 요청에 설정됩니다. |
retain.queryparams |
N/A | 아웃바운드 요청에 설정할 특정 쿼리 매개변수를 정의합니다. 예를 들어 요청 메시지의 쿼리 매개변수 apikey 를 포함하려면 retain.queryparams 를 apikey 로 설정합니다. 여러 쿼리 매개변수는 쉼표로 구분된 목록(예: 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. |
false |
기본적으로 (false ) HTTP 요청 페이로드는 버퍼로 읽히고 페이로드에서 작동할 수 있는 정책은 예상대로 작동합니다. 페이로드가 버퍼 크기 (10MB)보다 큰 경우 이 속성을 true 로 설정할 수 있습니다. true 인 경우 HTTP 요청 페이로드가 버퍼로 읽히지 않고 그대로 TargetEndpoint 요청 흐름에 스트리밍됩니다. 이 경우 ProxyEndpoint 요청 흐름의 페이로드에서 작동하는 모든 정책이 우회됩니다. 스트리밍 요청 및 응답도 참고하세요. |
response.streaming. |
false |
기본적으로 (false ) HTTP 응답 페이로드는 버퍼로 판독되며 페이로드에서 작동할 수 있는 정책은 예상대로 작동합니다. 페이로드가 버퍼 크기 (10MB)보다 큰 경우 이 속성을 true 로 설정할 수 있습니다. true 인 경우 HTTP 응답 페이로드가 버퍼로 판독되지 않고 클라이언트에 있는 그대로 스트리밍됩니다. 이 경우 ProxyEndpoint 응답 흐름의 페이로드에서 작동하는 모든 정책이 우회됩니다. 스트리밍 요청 및 응답도 참고하세요. |
compression.algorithm |
N/A |
기본적으로 Apigee Edge는 수신된 메시지에 설정된 압축 유형을 따릅니다. 예를 들어 클라이언트가 gzip 압축을 사용하는 요청을 제출하는 경우 Apigee Edge는 gzip 압축을 사용하여 요청을 대상으로 전달합니다. TargetEndpoint 또는 ProxyEndpoint에서 이 속성을 설정하여 명시적으로 적용되도록 압축 알고리즘을 구성할 수 있습니다. 지원되는 값은 다음과 같습니다.
|
api.timeout |
N/A |
개별 API 프록시의 시간 제한 구성 스트리밍이 사용 설정되어 있더라도
이 속성은 변수로 설정할 수 없습니다. Edge 시간 제한을 수정할 수 없는 고객은 제한 시간이 표준 Edge 메시지 프로세서 제한 시간 57초보다 짧으면 API 프록시 제한 시간을 구성할 수도 있습니다. 자세한 내용은 Edge용 io.timeout.millis 및 api.timeout 설정을 참조하세요. |
Edge용 io.timeout.millis 및 api.timeout 설정
Edge에서는 io.timeout.millis
와 api.timeout
의 작업이 서로 관련이 있습니다.
API 프록시에 대한 모든 요청에서 다음을 실행합니다.
- 라우터는 제한 시간 값을 메시지 프로세서로 보냅니다. 라우터 시간 제한 값은 요청을 처리하는 가상 호스트에서 설정한
proxy_read_timeout
값 또는 기본 시간 제한 값 57초입니다. - 그런 다음 메시지 프로세서는
api.timeout
를 설정합니다.api.timeout
가 프록시 수준에서 설정되지 않은 경우 라우터 시간 초과로 설정합니다.api.timeout
가 프록시 수준에서 설정되어 있으면 메시지 프로세서의 라우터 시간 제한 또는api.timeout
값 중 더 작은 값으로 설정합니다.
api.timeout
값은 API 요청에서 응답에 이르기까지 API 프록시가 실행되어야 하는 최대 시간을 지정합니다.API 프록시의 각 정책이 실행된 후 또는 메시지 프로세서가 요청을 대상 엔드포인트로 보내기 전에 메시지 프로세서가 (
api.timeout
- 요청 시작부터 경과된 시간)을 계산합니다. 값이 0보다 작으면 요청을 처리할 수 있는 최대 시간이 만료되고 메시지 프로세서가504
를 반환합니다.io.timeout.millis
의 값은 대상 엔드포인트가 응답해야 하는 최대 시간을 지정합니다.대상 엔드포인트에 연결하기 전에 메시지 프로세서는 (
api.timeout
- 요청 시작부터 경과된 시간)과io.timeout.millis
중 더 작은 값을 결정합니다. 그런 다음io.timeout.millis
를 해당 값으로 설정합니다.- HTTP 요청을 작성하는 동안 시간 초과가 발생하면
408, Request Timeout
가 반환됩니다. - HTTP 응답을 읽는 동안 시간 초과가 발생하면
504, Gateway Timeout
가 반환됩니다.
- HTTP 요청을 작성하는 동안 시간 초과가 발생하면
Node.js 애플리케이션용 ScriptTarget 정보
ScriptTarget 요소는 Node.js 애플리케이션을 프록시에 통합하는 데 사용됩니다. Node.js 및 ScriptTarget 사용에 대한 자세한 내용은 다음을 참조하세요.
HostedTarget 엔드포인트 정보
빈 <HostedTarget/>
태그는 Edge에 호스팅된 대상 환경에 배포된 Node.js 애플리케이션을 대상으로 사용하도록 지시합니다. 자세한 내용은 호스팅된 대상 개요를 참조하세요.