คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
หัวข้อนี้จะอธิบายถึงพร็อพเพอร์ตี้ Transport ที่ตั้งค่าได้ในการกำหนดค่า TargetEndpoint และ ProxyEndpoint เพื่อควบคุมลักษณะการรับส่งข้อความและการเชื่อมต่อ หากต้องการดูความครอบคลุมของการกำหนดค่า TargetEndpoint และ ProxyEndpoint โปรดดูข้อมูลอ้างอิงการกำหนดค่าพร็อกซี API
พร็อพเพอร์ตี้การนำส่งปลายทาง
องค์ประกอบ HTTPTargetConnection ในการกำหนดค่า TargetEndpoint จะกำหนดชุดพร็อพเพอร์ตี้การรับส่ง 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>
พร็อพเพอร์ตี้การนำส่งปลายทางเป้าหมาย ข้อมูลจำเพาะ
ชื่อพร็อพเพอร์ตี้ | ค่าเริ่มต้น | คำอธิบาย |
---|---|---|
keepalive.timeout.millis |
60000 |
ระยะหมดเวลาเนื่องจากไม่มีการใช้งานการเชื่อมต่อสำหรับการเชื่อมต่อเป้าหมายในพูลการเชื่อมต่อ หากการเชื่อมต่อในพูลไม่มีการใช้งานเกินขีดจำกัดที่ระบุไว้ ระบบจะปิดการเชื่อมต่อ |
connect.timeout.millis |
|
หมดเวลาการเชื่อมต่อเป้าหมาย Edge จะแสดงรหัสสถานะ HTTP |
io.timeout.millis |
55000 |
หากไม่มีข้อมูลให้อ่านตามจำนวนมิลลิวินาทีที่ระบุ หรือหากซ็อกเก็ตไม่พร้อมที่จะเขียนข้อมูลเป็นจำนวนมิลลิวินาทีที่ระบุไว้ ระบบจะถือว่าธุรกรรมเป็นการหมดเวลา
ค่านี้ควรน้อยกว่าค่าของ พร็อพเพอร์ตี้ proxy_read_timeout ของโฮสต์เสมือนเสมอ ค่านี้ควรน้อยกว่าระยะหมดเวลาที่เราเตอร์ใช้สำหรับการสื่อสารกับผู้ประมวลผลข้อความ โปรดดูการกำหนดค่าระยะหมดเวลาของเราเตอร์สำหรับข้อมูลเพิ่มเติม โปรดดูข้อมูลเพิ่มเติมที่การตั้งค่า 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/ลดการบีบอัดหรือไม่ |
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 ค่าที่รองรับมีดังนี้
ดูเพิ่มเติมที่ Apigee รองรับการบีบอัด/การยกเลิกการบีบอัดด้วยการบีบอัด GZIP/ลดการบีบอัดหรือไม่ |
api.timeout |
ไม่มีข้อมูล |
กำหนดค่าระยะหมดเวลาสำหรับพร็อกซี API แต่ละรายการ คุณสามารถกำหนดค่าพร็อกซี API แม้ว่าจะเป็นการเปิดใช้งานสตรีมมิง ให้หมดเวลาหลังจากเวลาที่ระบุโดยมีสถานะ
คุณไม่สามารถตั้งค่าพร็อพเพอร์ตี้นี้ด้วยตัวแปร ลูกค้าที่แก้ไขระยะหมดเวลา Edge ไม่ได้ยังกำหนดค่าการหมดเวลาของพร็อกซี API ได้ด้วยตราบใดที่ระยะหมดเวลานั้นสั้นกว่าระยะหมดเวลาของโปรแกรมประมวลผลข้อความ Edge มาตรฐานที่ 57 วินาที โปรดดูข้อมูลเพิ่มเติมที่การตั้งค่า io.timeout.millis และ api.timeout สำหรับ Edge |
กำลังตั้งค่า io.timeout.millis และ api.timeout สำหรับ Edge
ใน Edge การดําเนินการของ io.timeout.millis
และ api.timeout
จะมีความเกี่ยวข้องกัน
ในทุกคำขอที่ส่งไปยังพร็อกซี API
- เราเตอร์จะส่งค่าการหมดเวลาไปยังเครื่องมือประมวลผลข้อความ ค่าระยะหมดเวลาของเราเตอร์คือค่าของ
proxy_read_timeout
ที่กำหนดโดยโฮสต์เสมือนที่จัดการคำขอ หรือค่าระยะหมดเวลาเริ่มต้นคือ 57 วินาที - จากนั้นเครื่องมือประมวลผลข้อความจะตั้งค่า
api.timeout
ดังนี้- หากไม่ได้ตั้งค่า
api.timeout
ที่ระดับพร็อกซี ให้ตั้งระยะหมดเวลาของเราเตอร์ - หากตั้งค่า
api.timeout
ที่ระดับพร็อกซี ให้ตั้งค่าบน Message Processor โดยใช้ระยะหมดเวลาของเราเตอร์ที่น้อยลงหรือมีค่าapi.timeout
- หากไม่ได้ตั้งค่า
ค่าของ
api.timeout
ระบุระยะเวลาสูงสุดที่พร็อกซี API ต้องดำเนินการจากคำขอ API ไปยังการตอบสนองหลังจากนโยบายแต่ละรายการในพร็อกซี API ทำงาน หรือก่อนที่ผู้ประมวลผลข้อความจะส่งคำขอไปยังปลายทางเป้าหมาย ผู้ประมวลผลข้อความจะคำนวณ (
api.timeout
- เวลาที่ผ่านไปนับจากเริ่มต้นคำขอ) หากค่าน้อยกว่า 0 แสดงว่าระยะเวลาสูงสุดในการจัดการคำขอหมดอายุและตัวประมวลผลข้อความจะแสดงผล504
ค่าของ
io.timeout.millis
ระบุระยะเวลาสูงสุดที่ปลายทางเป้าหมายมีการตอบสนองก่อนเชื่อมต่อกับปลายทางเป้าหมาย ตัวประมวลผลข้อความจะกำหนด (
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 ที่มีการทำให้ใช้งานได้กับสภาพแวดล้อมเป้าหมายที่โฮสต์ โปรดดูรายละเอียดที่ภาพรวมของเป้าหมายที่โฮสต์