轉送 Proxy 可讓多部機器將要求傳送至外部伺服器。他們可以強制執行安全性政策、記錄與分析要求,以及執行其他操作,讓要求符合貴公司的規則。使用 Edge 時,轉寄 Proxy 通常會混用 API Proxy 和外部目標端點 (後端目標伺服器)。
如要在 Edge 和 TargetEndpoint 之間使用 HTTP 轉送 Proxy,您必須在訊息處理器 (MP) 上設定外送 Proxy 設定。這些屬性會設定 MP,以便將目標要求從 Edge 轉送至 HTTP 轉送 Proxy。
如何設定用於轉送 Proxy 的 MP:
- 在 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
檔案中的屬性,可用來設定將 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 的通訊埠。如果省略這個屬性,則會根據預設使用 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 發出要求,然後連線至外部服務。