フォワード プロキシを構成する

フォワード プロキシは、複数のマシンが外部サーバーにリクエストを送信するための単一の通過ポイントを提供します。転送プロキシでは、リクエストをビジネスルールに準拠させるために、セキュリティ ポリシーの適用や、リクエストのロギングと分析などの処理を行うことができます。Edge のフォワード プロキシは通常、API プロキシと外部の TargetEndpoint(バックエンド ターゲット サーバー)を仲介します。

Edge と TargetEndpoint の間で HTTP フォワード プロキシを使用するには、Message Processor(MP)でアウトバウンド プロキシ設定を構成する必要があります。MP はこれらのプロパティに従って、ターゲット リクエストを Edge から HTTP フォワード プロキシに転送します。

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 プロキシに対してバックエンド サービスからリクエストを送信すると、API プロキシが外部サービスに接続します。