查看 Apigee Edge 說明文件。
前往
Apigee X說明文件。 資訊
本主題說明可在 TargetEndpoint 和 ProxyEndpoint 設定的傳輸屬性 設定控管訊息和連線行為完整涵蓋 TargetEndpoint 和 ProxyEndpoint 設定,請參閱 API Proxy 設定參考資料。
TargetEndpoint 傳輸屬性
TargetEndpoint 設定中的 HTTPTargetConnection 元素定義了一組 HTTP 或傳輸屬性您可以使用這些屬性來設定傳輸層級設定。
您可以在 TargetEndpoint HTTPTargetConnection 元素上設定屬性,如下所示:
<TargetEndpoint name="default"> <HTTPTargetConnection> <URL>http://mocktarget.apigee.net</URL> <Properties> <Property name="supports.http10">true</Property> <Property name="request.retain.headers">User-Agent,Referer,Accept-Language</Property> <Property name="retain.queryparams">apikey</Property> </Properties> <CommonName>COMMON_NAME_HERE</CommonName> </HTTPTargetConnection> </TargetEndpoint>
TargetEndpoint 傳輸屬性 規格
資源名稱 | 預設值 | 說明 |
---|---|---|
keepalive.timeout.millis |
60000 |
連線集區內目標連線的連線閒置逾時。如果 集區中的連線閒置超過指定限制,則連線 已打烊。 |
connect.timeout.millis |
|
目標連線逾時。如果連線成功,Edge 會傳回 HTTP |
io.timeout.millis |
55000 |
如果指定的毫秒數沒有可讀取的資料,或者通訊端 無法針對指定的毫秒數寫入資料,則交易 視為逾時。
這個值一律應小於 虛擬主機的 Proxy_read_timeout 屬性 這個值應小於 與訊息處理器通訊的路由器。請參閱「設定路由器逾時」一節,瞭解 內容。 |
supports.http10 |
true |
如果這是 true ,且用戶端傳送 1.0 要求,目標也會傳送 1.0
請求。否則 1.1 要求會傳送至目標。 |
supports.http11 |
true |
如果這是 true ,且用戶端傳送 1.1 要求,目標也會傳送 1.1
如果沒有,則 1.0 要求會傳送至目標。 |
use.proxy |
true |
如果設為 true ,就會指定 Proxy 設定:
http.properties (僅限地端部署部署作業),然後目標連線
會設定成使用指定的 Proxy。 |
use.proxy.tunneling |
true |
如果設為 true ,並已在
http.properties (僅限地端部署部署作業),然後指定
連線已設為使用指定通道。如果目標使用 TLS/SSL
屬性,並且一律會透過通道傳送。 |
enable.method.override |
false |
針對指定的 HTTP 方法,將 X-HTTP-Method-Override 標頭設為
並將傳出要求傳送到目標服務。例如:<Property
name="GET.override.method">POST</Property> |
*.override.method |
不適用 | 針對指定的 HTTP 方法,將 X-HTTP-Method-Override 標頭設為
輸出要求例如:<Property
name="GET.override.method">POST</Property> |
request.streaming.enabled |
false |
根據預設 ( |
response.streaming.enabled |
false |
根據預設 ( |
success.codes |
不適用 |
根據預設,Apigee Edge 會將 HTTP 代碼 設定這個屬性會覆寫預設值。因此,如果您想在
請將 HTTP 代碼 <Property name="success.codes">1XX,2XX,3XX,400</Property> 如果只想將 HTTP 代碼 <Property name="success.codes">400</Property> 將 HTTP 代碼 |
compression.algorithm |
不適用 |
根據預設,Apigee Edge 會使用相同的壓縮類型,將要求轉送至目標
做為用戶端要求如果是使用 gzip 等用戶端
壓縮後,Apigee Edge 會使用 gzip 壓縮將要求轉送至目標。如果
而 Apigee Edge 會將回應轉至
用戶端的接聽程式。支援的值如下:
|
request.retain.headers. |
true |
根據預設,Apigee Edge 一律會保留外寄郵件的所有 HTTP 標頭。設定時
設為 true ,那麼傳入要求中的所有 HTTP 標頭都會設定在
。 |
request.retain.headers |
不適用 | 從要求中定義應在連出連線中設定的特定 HTTP 標頭
要求目標服務傳送要求例如,直通 User-Agent
標頭,將 request.retain.headers 的值設為 User-Agent 。
如有多個 HTTP 標頭,請使用逗號分隔清單指定,例如
User-Agent,Referer,Accept-Language 。這個屬性覆寫
request.retain.headers.enabled 。如果request.retain.headers.enabled
目前設定成 false ,而
外寄郵件中仍設定 request.retain.headers 屬性。 |
response.retain.headers. |
true |
根據預設,Apigee Edge 一律會保留外寄郵件的所有 HTTP 標頭。設定時
true ,表示目標傳入回應中的所有 HTTP 標頭
服務在傳送至 ProxyEndpoint 之前,就已經在輸出回應上設定。 |
response.retain.headers |
不適用 | 定義回應中應設定傳出的特定 HTTP 標頭
再傳送到 ProxyEndpoint。例如,直通式
「Expires 」標頭,將 response.retain.headers 的值設為
Expires 。將多個 HTTP 標頭指定為逗號分隔清單,
例如:Expires,Set-Cookie 。這個屬性覆寫
response.retain.headers.enabled 。如果
response.retain.headers.enabled 已設為 false ,任何標頭
在 response.retain.headers 屬性中指定的仍設定在
外寄郵件。 |
retain.queryparams. |
true |
根據預設,Apigee Edge 一律會保留傳出要求的所有查詢參數。時間
設為 true ,傳入要求中的所有查詢參數都會設為
並將傳出要求傳送到目標服務。 |
retain.queryparams |
不適用 | 定義要對傳出要求設定的特定查詢參數。舉例來說
在要求訊息中加入查詢參數 apikey ,請設定
將 retain.queryparams 重新命名為 apikey 。多個查詢參數
以半形逗號分隔的清單,例如 apikey,environment 。這個
屬性會覆寫 retain.queryparams.enabled 。 |
ProxyEndpoint 傳輸屬性
ProxyEndpoint HTTPTargetConnection 元素定義一組 HTTP 傳輸屬性。這些 屬性可用於設置傳輸層級設定
屬性設定在 ProxyEndpoint HTTPProxyConnection 元素上,如下所示:
<ProxyEndpoint name="default"> <HTTPProxyConnection> <BasePath>/v1/weather</BasePath> <Properties> <Property name="request.streaming.enabled">true</Property> </Properties> <VirtualHost>default</VirtualHost> <VirtualHost>secure</VirtualHost> </HTTPProxyConnection> </ProxyEndpoint>
如要進一步瞭解虛擬主機,請參閱「虛擬主機簡介」。
ProxyEndpoint 傳輸屬性 規格
資源名稱 | 預設值 | 說明 |
---|---|---|
X-Forwarded-For |
false |
如果設為「true 」,系統會將虛擬主機的 IP 位址新增為傳出要求,做為
HTTP X-Forwarded-For 標頭的值。 |
request.streaming. |
false |
根據預設 (false ),HTTP 要求酬載會讀取到緩衝區中,以及可以
在酬載工作上正常運作。當酬載大於
緩衝區空間 (10 MB),您可以將此
屬性設為 true 。如果為 true ,HTTP 要求酬載不會讀取到緩衝區中;他們
依照原樣串流至 TargetEndpoint 要求流程。採取這個做法時
它會略過 ProxyEndpoint 要求流程中的酬載。另請參閱串流要求與回應。 |
response.streaming. |
false |
根據預設 (false ),HTTP 回應酬載會讀取到緩衝區中,以及
可以在酬載工作上正常運作。當酬載大於
緩衝區空間 (10 MB),您可以將此
屬性設為 true 。如果為 true ,HTTP 回應酬載不會讀取到緩衝區中;他們
以原樣串流至用戶端在此情況下,
已略過 ProxyEndpoint 回應流程。另請參閱串流要求與回應。 |
compression.algorithm |
不適用 |
根據預設,Apigee Edge 會遵循所有收到訊息的壓縮類型組合。適用對象 例如,用戶端提交使用 gzip 壓縮、Apigee Edge 格式的要求 使用 gzip 壓縮將要求轉送至目標。您可以設定壓縮 在 TargetEndpoint 上設定這個屬性或 ProxyEndpoint。支援的值如下:
|
api.timeout |
不適用 |
設定個別 API Proxy 的逾時時間 您可以設定 API Proxy
streaming 已啟用,
,並設為
您無法使用變數設定這個屬性。 無法修改邊緣逾時的客戶也可以設定 API Proxy 逾時,只要逾時時間比標準 Edge 訊息處理器還短 設為 57 秒的逾時值 |
為 Edge 設定 io.timeout.millis 和 api.timeout
在 Edge 上,io.timeout.millis
和 api.timeout
的作業
彼此相關。
在每個要求 API Proxy 的要求上:
- 路由器將其逾時值傳送至訊息處理器。路由器逾時值為
由虛擬主機設定的
proxy_read_timeout
值 處理要求,或預設的逾時值為 57 秒。 - 訊息處理器會接著設定
api.timeout
:- 如果「沒有」在 Proxy 層級設定
api.timeout
,請設為路由器逾時。 - 如果
api.timeout
是在 Proxy 層級設定,請在訊息處理器中,將其設為 路由器逾時期限較短或api.timeout
值。
- 如果「沒有」在 Proxy 層級設定
api.timeout
值會指定 API Proxy 完成的時間長度上限 向回應傳送 API 要求執行 API Proxy 中的每個政策後 或在訊息處理程式傳送要求至目標端點之前 訊息處理器會計算 (
api.timeout
- 從要求開始時經過的時間)。 如果值小於 0,表示處理要求的時間上限已過,且 訊息處理器傳回504
。io.timeout.millis
的值會指定目標端點的時間長度上限 就必須做出回應連線至目標端點之前,訊息處理器會決定 (
api.timeout
- 從要求開始時經過的時間) 和io.timeout.millis
。 然後將io.timeout.millis
設為該值。- 如果寫入 HTTP 要求時發生逾時,
408, Request Timeout
。 - 如果讀取 HTTP 回應時發生逾時情形,請
504, Gateway Timeout
。
- 如果寫入 HTTP 要求時發生逾時,
關於 Node.js 應用程式的 ScriptTarget
ScriptTarget 元素可用於將 Node.js 應用程式整合至 Proxy。適用對象 有關使用 Node.js 和 ScriptTarget 的資訊,請參閱:
關於 HostedTarget 端點
空白的 <HostedTarget/>
標記會指示 Edge 使用為 Node.js 做為目標
部署到託管目標環境的應用程式。詳情請參閱
代管目標總覽。