คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
หัวข้อนี้อธิบายพร็อพเพอร์ตี้การขนส่งที่สามารถตั้งค่าในการกำหนดค่า TargetEndpoint และ ProxyEndpoint เพื่อควบคุมลักษณะการทำงานของการรับส่งข้อความและการเชื่อมต่อ ดูข้อมูลทั้งหมดเกี่ยวกับการกำหนดค่า TargetEndpoint และ ProxyEndpoint ได้ที่ข้อมูลอ้างอิงการกำหนดค่าพร็อกซี API
พร็อพเพอร์ตี้การขนส่งของ TargetEndpoint
องค์ประกอบ HTTPTargetConnection ในการกำหนดค่า TargetEndpoint จะกำหนดชุดพร็อพเพอร์ตี้การขนส่ง HTTP คุณสามารถใช้พร็อพเพอร์ตี้เหล่านี้เพื่อตั้งค่าการกำหนดค่าระดับการขนส่ง
ระบบจะตั้งค่าพร็อพเพอร์ตี้ในองค์ประกอบ HTTPTargetConnection ของ TargetEndpoint ดังที่แสดงด้านล่าง
<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` ของโฮสต์เสมือนเสมอ ค่านี้ควรน้อยกว่าระยะหมดเวลาที่ Router ใช้ในการสื่อสารกับ Message Processor ดูข้อมูลเพิ่มเติมได้ที่การกำหนดค่าระยะหมดเวลาของ Routerสำหรับ เพิ่มเติม ดูข้อมูลเพิ่มเติมได้ที่การตั้งค่า io.timeout.millis และ api.timeout สำหรับ Edge |
supports.http10 |
true |
หากตั้งค่าเป็น true และไคลเอ็นต์ส่งคำขอ 1.0 ระบบจะส่งคำขอ 1.0
ไปยังเป้าหมายด้วย มิฉะนั้น ระบบจะส่งคำขอ 1.1 ไปยังเป้าหมาย |
supports.http11 |
true |
หากตั้งค่าเป็น true และไคลเอ็นต์ส่งคำขอ 1.1 ระบบจะส่งคำขอ 1.1
ไปยังเป้าหมายด้วย มิฉะนั้น ระบบจะส่งคำขอ 1.0 ไปยังเป้าหมาย |
use.proxy |
true |
หากตั้งค่าเป็น true และมีการระบุการกำหนดค่าพร็อกซีใน
http.properties (การติดตั้งใช้งานในองค์กรเท่านั้น) ระบบจะตั้งค่าการเชื่อมต่อเป้าหมาย
ให้ใช้พร็อกซีที่ระบุ |
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 หาก
การตอบกลับที่ได้รับจากเป้าหมายใช้การบีบอัด deflate Apigee Edge จะส่งต่อการตอบกลับไปยัง
ไคลเอ็นต์โดยใช้การบีบอัด deflate ค่าที่รองรับมีดังนี้
ดูเพิ่มเติมได้ที่ Apigee รองรับการบีบอัด/คลายการบีบอัดด้วยการบีบอัด GZIP/deflate ไหม |
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
องค์ประกอบ HTTPTargetConnection ของ ProxyEndpoint จะกำหนดชุดพร็อพเพอร์ตี้การขนส่ง HTTP คุณสามารถใช้พร็อพเพอร์ตี้เหล่านี้ เพื่อตั้งค่าการกำหนดค่าระดับการขนส่ง
ระบบจะตั้งค่าพร็อพเพอร์ตี้ในองค์ประกอบ HTTPProxyConnection ของ ProxyEndpoint ดังนี้
<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 ค่าที่รองรับมีดังนี้
ดูเพิ่มเติมได้ที่ Apigee รองรับการบีบอัด/คลายการบีบอัดด้วยการบีบอัด GZIP/deflate ไหม |
api.timeout |
ไม่มี |
กำหนดค่าระยะหมดเวลาสำหรับพร็อกซี API แต่ละรายการ คุณสามารถกำหนดค่าพร็อกซี API แม้แต่พร็อกซีที่เปิดใช้
การสตรีมให้หมดเวลาหลังจากผ่านไประยะเวลาที่ระบุด้วยสถานะ
คุณไม่สามารถตั้งค่าพร็อพเพอร์ตี้นี้ด้วยตัวแปร ลูกค้าที่ไม่สามารถแก้ไขระยะหมดเวลาของ Edge ยังสามารถกำหนดค่าระยะหมดเวลาของพร็อกซี API ได้ ตราบใดที่ระยะหมดเวลาสั้นกว่าระยะหมดเวลามาตรฐานของ Message Processor ของ Edge ซึ่งอยู่ที่ 57 วินาที ดูข้อมูลเพิ่มเติมได้ที่การตั้งค่า io.timeout.millis และ api.timeout สำหรับ Edge |
การตั้งค่า io.timeout.millis และ api.timeout สำหรับ Edge
ใน Edge การทำงานของ io.timeout.millis และ api.timeout
เกี่ยวข้องกัน
ในทุกคำขอที่ส่งไปยังพร็อกซี API
- เราเตอร์จะส่งค่าระยะหมดเวลาไปยัง Message Processor ค่าระยะหมดเวลาของเราเตอร์คือค่า
proxy_read_timeoutที่ตั้งค่าโดย โฮสต์เสมือน ที่จัดการคำขอ หรือค่าระยะหมดเวลาเริ่มต้นที่ 57 วินาที - จากนั้น Message Processor จะตั้งค่า
api.timeoutดังนี้- หากไม่ได้ตั้งค่า
api.timeoutที่ระดับพร็อกซี ให้ตั้งค่าเป็นระยะหมดเวลาของเราเตอร์ - หากตั้งค่า
api.timeoutที่ระดับพร็อกซี ให้ตั้งค่าใน Message Processor เป็นค่าที่น้อยกว่าระหว่างระยะหมดเวลาของเราเตอร์กับค่าapi.timeout
- หากไม่ได้ตั้งค่า
ค่า
api.timeoutจะระบุระยะเวลาสูงสุดที่พร็อกซี API มี ในการดำเนินการตั้งแต่คำขอ API ไปจนถึงการตอบกลับหลังจากที่นโยบายแต่ละรายการในพร็อกซี API ดำเนินการเสร็จแล้ว หรือก่อนที่ Message Processor จะส่งคำขอไปยังปลายทางเป้าหมาย Message Processor จะคำนวณ (
api.timeout- เวลาที่ผ่านไปตั้งแต่เริ่มคำขอ) หากค่าเป็นลบ แสดงว่าระยะเวลาสูงสุดในการจัดการคำขอหมดลงแล้ว และ Message Processor จะแสดง504ค่า
io.timeout.millisจะระบุระยะเวลาสูงสุดที่ปลายทางเป้าหมาย มีในการตอบกลับก่อนที่จะเชื่อมต่อกับปลายทางเป้าหมาย Message Processor จะกำหนดค่าที่น้อยกว่าระหว่าง (
api.timeout- เวลาที่ผ่านไปตั้งแต่เริ่มคำขอ) กับio.timeout.millisจากนั้นจะตั้งค่าio.timeout.millisเป็นค่านั้น- หากเกิดระยะหมดเวลาขณะเขียนคำขอ HTTP ระบบจะแสดง
408, Request Timeout - หากเกิดระยะหมดเวลาขณะอ่านการตอบกลับ HTTP ระบบจะแสดง
504, Gateway Timeout
- หากเกิดระยะหมดเวลาขณะเขียนคำขอ HTTP ระบบจะแสดง
เกี่ยวกับ ScriptTarget สำหรับแอปพลิเคชัน Node.js
องค์ประกอบ ScriptTarget ใช้เพื่อผสานรวมแอปพลิเคชัน Node.js เข้ากับพร็อกซี ดูข้อมูลเกี่ยวกับการใช้ Node.js และ ScriptTarget ได้ที่
เกี่ยวกับปลายทาง HostedTarget
แท็ก <HostedTarget/> ที่ว่างเปล่าจะบอกให้ Edge ใช้แอปพลิเคชัน Node.js
ที่ทำให้ใช้งานได้ในสภาพแวดล้อม Hosted Targets เป็นเป้าหมาย ดูรายละเอียดได้ที่
ภาพรวมของ Hosted Targets