正向 Proxy 提供單一進入點,讓多部機器透過該進入點將要求傳送至外部伺服器。這類政策可強制執行安全性政策、記錄及分析要求,以及執行其他動作,確保要求符合業務規則。在 Edge 中,正向 Proxy 通常會介接 API Proxy 和外部 TargetEndpoint (後端目標伺服器)。
如要在 Edge 和 TargetEndpoint 之間使用 HTTP 轉送 Proxy,您必須在訊息處理器 (MP) 上設定外送 Proxy 設定。這些屬性會設定 MP,將目標要求從 Edge 轉送至 HTTP 轉送 Proxy。
如要設定 MP 轉送 Proxy:
- 在 MP 上編輯下列檔案:
/opt/apigee/customer/application/message-processor.properties
如果
message-processor.properties檔案不存在,請建立這個檔案。 - 編輯檔案,設定下表所述的 Proxy 相關屬性。
- 確認屬性檔案的擁有者是「apigee」使用者:
chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- 儲存對屬性檔案所做的變更。
- 重新啟動 MP,如以下範例所示:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
下表說明 message-processor.properties 檔案中的屬性,可用於設定 MP,將轉送 Proxy 傳送至後端伺服器:
| 屬性 | 說明 |
|---|---|
conf_http_HTTPClient.use.proxy |
允許使用轉送 Proxy。預設值為 如果將這個值設為 |
conf_http_HTTPClient.use.tunneling |
根據預設,Edge 會對所有流量使用通道。如要預設停用通道功能,請將這項屬性設為「false」。 |
use.proxy.host.header.with.target.uri |
將目標主機和通訊埠設為
<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 則可連線至外部服務。