設定轉址 Proxy

正向 Proxy 提供單一進入點,讓多部機器透過該進入點將要求傳送至外部伺服器。這類政策可強制執行安全性政策、記錄及分析要求,以及執行其他動作,確保要求符合業務規則。在 Edge 中,正向 Proxy 通常會介接 API Proxy 和外部 TargetEndpoint (後端目標伺服器)。

如要在 Edge 和 TargetEndpoint 之間使用 HTTP 轉送 Proxy,您必須在訊息處理器 (MP) 上設定外送 Proxy 設定。這些屬性會設定 MP,將目標要求從 Edge 轉送至 HTTP 轉送 Proxy。

如要設定 MP 轉送 Proxy:

  1. 在 MP 上編輯下列檔案:
    /opt/apigee/customer/application/message-processor.properties

    如果 message-processor.properties 檔案不存在,請建立這個檔案。

  2. 編輯檔案,設定下表所述的 Proxy 相關屬性。
  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

下表說明 message-processor.properties 檔案中的屬性,可用於設定 MP,將轉送 Proxy 傳送至後端伺服器:

屬性 說明
conf_http_HTTPClient.use.proxy

允許使用轉送 Proxy。預設值為 true,表示您可以在套件設定中加入相關 XML,在 API Proxy 層使用轉送 Proxy。

如果將這個值設為 false,就無法使用轉送 Proxy。

conf_http_HTTPClient.use.tunneling

根據預設,Edge 會對所有流量使用通道。如要預設停用通道功能,請將這項屬性設為「false」。

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

將目標主機和通訊埠設為 Host 標頭。根據預設,Proxy 主機和通訊埠會設為 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 Proxy 的類型為 HTTP 或 HTTPS。預設值為「HTTP」。

conf/http.properties+HTTPClient.proxy.host

指定 HTTP Proxy 執行所在的主機名稱或 IP 位址。

conf/http.properties+HTTPClient.proxy.port

指定 HTTP Proxy 執行的通訊埠。如果省略這項屬性,系統預設會使用通訊埠 80 處理 HTTP,並使用通訊埠 443 處理 HTTPS。

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

如果 HTTP Proxy 需要基本驗證,請使用這些屬性提供授權詳細資料。

例如:

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 設定正向 Proxy,則從 API Proxy 傳送至後端目標的所有流量,都會經過指定的 HTTP 正向 Proxy。如果 API Proxy 特定目標的流量應直接傳送至後端目標,略過轉送 Proxy,請在 TargetEndpoint 中設定下列屬性,覆寫 HTTP 轉送 Proxy:

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

如要進一步瞭解如何設定 TargetEndpoint 屬性,包括如何設定與目標端點的連線,請參閱「端點屬性參考資料」。

如要預設停用所有目標的正向 Proxy 處理,請在 message-processor.properties 檔案中設定下列屬性:

conf_http_HTTPClient.use.proxy=false

接著,針對要透過 HTTP 轉送 Proxy 傳送的任何 TargetEndpoint,將 use.proxy 設為「true」:

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

根據預設,Edge 會使用通道傳送流量至 Proxy。如要預設停用通道功能,請在 message-processor.properties 檔案中設定下列屬性:

conf_http_HTTPClient.use.tunneling=false

如要停用特定目標的通道功能,請在 TargetEndpoint 中設定 use.proxy.tunneling 屬性。如果目標使用 TLS/SSL,系統會忽略這項屬性,一律透過通道傳送訊息:

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

如要讓 Edge 本身做為轉送 Proxy,接收後端服務的要求,並將要求轉送至企業外部的網際網路,請先在 Edge 上設定 API Proxy。後端服務接著可以向 API Proxy 提出要求,API Proxy 則可連線至外部服務。