전달 프록시 구성

전달 프록시는 여러 머신이 외부 서버에 요청을 보내는 단일 지점을 제공합니다. 보안 정책을 적용하고, 요청을 로깅 및 분석하고, 요청이 비즈니스 규칙을 준수하도록 다른 작업을 수행할 수 있습니다. Edge를 사용하면 일반적으로 전달 프록시가 API 프록시 및 외부 TargetEndpoint (백엔드 대상 서버)를 중간 수준으로 유지합니다.

Edge와 TargetEndpoint 간에 HTTP 전달 프록시를 사용하려면 메시지 프로세서 (MP)에 아웃바운드 프록시 설정을 구성해야 합니다. 이러한 속성은 에지에서 HTTP 전달 프록시로 대상 요청을 라우팅하도록 MP를 구성합니다.

전달 프록시용 MP를 구성하려면 다음 안내를 따르세요.

  1. MP에서 다음 파일을 수정합니다.
    /opt/apigee/customer/application/message-processor.properties

    message-processor.properties 파일이 없으면 새로 만듭니다.

  2. 파일을 수정하여 아래 표에 설명된 프록시 관련 속성을 설정합니다.
  3. 'Apigee' 사용자가 속성 파일을 소유하고 있는지 확인합니다.
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  4. 속성 파일에 변경사항을 저장합니다.
  5. 다음 예에 표시된 것처럼 MP를 다시 시작합니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

다음 표에서는 백엔드 서버로 전달 프록시용 MP를 구성하는 데 사용하는 message-processor.properties 파일의 속성을 설명합니다.

속성 설명
conf_http_HTTPClient.use.proxy

전달 프록시 사용을 허용합니다. 기본값은 true입니다. 즉, 관련 XML을 번들 구성에 포함하여 API 프록시 레이어에서 정방향 프록시를 사용할 수 있습니다.

이 값을 false로 설정하면 정방향 프록시를 사용할 수 없습니다.

conf_http_HTTPClient.use.tunneling

기본적으로 Edge는 모든 트래픽에 터널링을 사용합니다. 기본적으로 터널링을 사용 중지하려면 이 속성을 'false'로 설정합니다.

use.proxy.host.header.with.target.uri

대상 호스트와 포트를 Host 헤더로 설정합니다. 기본적으로 프록시 호스트와 포트는 Host 헤더로 설정됩니다. 이 속성은 대상 엔드포인트에서만 설정할 수 있습니다. 예를 들면 다음과 같습니다.

<HTTPTargetConnection>
    <Properties>
        <Property name="use.proxy.host.
         header.with.target.uri">true
        </Property>
    </Properties>
    <URL>https://mocktarget.apigee.net/
     my-target</URL>
</HTTPTargetConnection>
conf/http.properties+HTTPClient.proxy.type

HTTP 프록시의 유형을 HTTP 또는 HTTPS로 지정합니다. 기본적으로 'HTTP'를 사용합니다.

conf/http.properties+HTTPClient.proxy.host

HTTP 프록시가 실행되는 호스트 이름 또는 IP 주소를 지정합니다.

conf/http.properties+HTTPClient.proxy.port

HTTP 프록시가 실행 중인 포트를 지정합니다. 이 속성을 생략하면 기본적으로 HTTP에는 포트 80을, HTTPS에는 포트 443을 사용합니다.

conf/http.properties+HTTPClient.proxy.user
conf/http.properties+HTTPClient.proxy.password

HTTP 프록시에 기본 인증이 필요한 경우 이러한 속성을 사용하여 승인 세부정보를 제공합니다.

예를 들면 다음과 같습니다.

conf_http_HTTPClient.use.proxy=true
conf_http_HTTPClient.use.tunneling=false
conf/http.properties+HTTPClient.proxy.type=HTTP
conf/http.properties+HTTPClient.proxy.host=my.host.com
conf/http.properties+HTTPClient.proxy.port=3128
conf/http.properties+HTTPClient.proxy.user=USERNAME
conf/http.properties+HTTPClient.proxy.password=PASSWORD

MP에 전달 프록시가 구성되어 있으면 API 프록시에서 백엔드 대상으로 이동하는 모든 트래픽이 지정된 HTTP 전달 프록시를 통과합니다. API 프록시의 특정 대상의 트래픽을 전달 프록시를 우회하여 백엔드 대상으로 직접 전달해야 하는 경우 TargetEndpoint에 다음 속성을 설정하여 HTTP 전달 프록시를 재정의합니다.

<Property name="use.proxy">false</Property>

대상 엔드포인트에 대한 연결을 구성하는 방법 등 TargetEndpoint 속성 설정에 대한 자세한 내용은 엔드포인트 속성 참조를 참조하세요.

기본적으로 모든 대상에 대해 전달 프록시를 사용 중지하려면 message-processor.properties 파일에 다음 속성을 설정합니다.

conf_http_HTTPClient.use.proxy=false

그런 다음 HTTP 전달 프록시를 거치려는 TargetEndpoint에 use.proxy를 'true'로 설정합니다.

<Property name="use.proxy">true</Property>

기본적으로 Edge는 프록시로의 트래픽에 터널링을 사용합니다. 기본적으로 터널링을 사용 중지하려면 message-processor.properties 파일에 다음 속성을 설정합니다.

conf_http_HTTPClient.use.tunneling=false

특정 대상에 대해 터널링을 사용 중지하려면 TargetEndpoint에서 use.proxy.tunneling 속성을 설정합니다. 대상이 TLS/SSL을 사용하는 경우 이 속성은 무시되며 메시지는 항상 터널을 통해 전송됩니다.

<Property name="use.proxy.tunneling">false</Property>

Edge 자체가 백엔드 서비스로부터 요청을 수신하여 엔터프라이즈 외부의 인터넷으로 라우팅하는 전달 프록시 역할을 하려면 먼저 Edge에서 API 프록시를 설정합니다. 그러면 백엔드 서비스가 외부 프록시에 연결할 수 있는 API 프록시에 요청을 수행할 수 있습니다.