設定轉址 Proxy

轉送 Proxy 可讓多部機器將要求傳送至外部伺服器。他們可以強制執行安全性政策、記錄與分析要求,以及執行其他操作,讓要求符合貴公司的規則。使用 Edge 時,轉寄 Proxy 通常會混用 API Proxy 和外部目標端點 (後端目標伺服器)。

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

如何設定用於轉送 Proxy 的 MP:

  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 檔案中的屬性,可用來設定將 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 的通訊埠。如果省略這個屬性,則會根據預設使用 HTTP 通訊埠 80,HTTPS 的通訊埠 443。

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,將 use.proxy 設為「true」:

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

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

conf_http_HTTPClient.use.tunneling=false

如要停用特定目標的通道,請在目標端點設定 use.proxy.tunneling 屬性。如果目標使用傳輸層安全標準 (TLS)/安全資料傳輸層 (SSL),系統會忽略這個屬性,且一律會透過通道傳送訊息:

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

為了讓 Edge 做為前向 Proxy (從後端服務接收要求,並將要求轉送至企業以外的網際網路),請先在 Edge 上設定 API Proxy。接著,後端服務會向 API Proxy 發出要求,然後連線至外部服務。