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