يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات
Apigee X. المعلومات
يوضِّح هذا الموضوع خصائص النقل التي يمكن ضبطها في إعدادَي TargetEndpoint وProxyEndpoint للتحكّم في الرسائل وسلوك الاتصال. للحصول على التغطية الكاملة لإعداد TargetEndpoint وProxyEndpoint، يُرجى الاطّلاع على مرجع إعداد الخادم الوكيل لواجهة برمجة التطبيقات.
خصائص نقل 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 للمضيف الافتراضي. يجب أن تكون هذه القيمة أقل من المهلة التي يستخدمها جهاز التوجيه للاتصال بمعالج الرسائل. راجِع ضبط مهلة جهاز التوجيه لمزيد من المعلومات. يمكنك الاطّلاع على إعدادات 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) أو طبقة المقابس الآمنة، سيتم تجاهل هذه السمة، ويتم دائمًا إرسال الرسالة عبر نفق. |
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 ميغابايت)، يمكنك ضبط هذه
السمة على true . عند استخدام true ، لا تتم قراءة حمولات طلبات HTTP في المخزن المؤقت، بل يتم بثّها كما هي في مسار طلب TargetEndpoint. في هذه الحالة، يتم استبعاد أي سياسات
تعمل على الحمولة في تدفق طلب ProxyEndpoint. يُرجى الاطّلاع أيضًا على طلبات البث والردود. |
response.streaming. |
false |
وحسب الإعدادات التلقائية (false )، تتم قراءة حمولات استجابة HTTP في مخازن مؤقتة، وتعمل السياسات التي يمكنها العمل على الحمولة على النحو المتوقع. وفي الحالات التي يزيد فيها حجم الحمولات عن
حجم المخزن المؤقت (10 ميغابايت)، يمكنك ضبط هذه
السمة على true . عند استخدام true ، لا تتم قراءة حمولات استجابة HTTP في المخزن المؤقت، بل يتم بثها كما هي إلى البرنامج. في هذه الحالة، يتم استبعاد أي سياسات تعمل على الحمولة في
تدفق استجابة ProxyEndpoint. يُرجى الاطّلاع أيضًا على طلبات البث والردود. |
compression.algorithm |
لا ينطبق |
وفقًا للإعدادات التلقائية، تلتزم Apigee Edge بنوع الضغط الذي تم ضبطه لأي رسالة يتم استلامها. على سبيل المثال، عندما يرسل العميل طلبًا يستخدم ضغط gzip، يعيد Apigee Edge توجيه الطلب لاستهدافه باستخدام ضغط gzip. يمكنك إعداد خوارزميات الضغط ليتم تطبيقها بشكل صريح من خلال ضبط هذه السمة على TargetEndpoint أو ProxyEndpoint. القيمتان المسموح بإدراجهما هما:
راجِع أيضًا: هل يتوافق Apigee مع الضغط/إلغاء الضغط باستخدام GZIP/deflate؟ |
api.timeout |
لا ينطبق |
ضبط المهلة المحدَّدة لخوادم وكيل واجهة برمجة التطبيقات الفردية يمكنك ضبط الخوادم الوكيلة لواجهة برمجة التطبيقات، حتى لو تم تفعيل
البث فيها،
لانتهاء المهلة بعد وقت محدّد بالحالة
لا يمكنك ضبط هذه السمة باستخدام متغيّر. يمكن للعملاء أيضًا، الذين لا يمكنهم تعديل مهلات Edge، ضبط مهلة الخادم الوكيل لواجهة برمجة التطبيقات، ما دامت المهلة أقصر من المهلة العادية لمعالج رسائل Edge التي تبلغ 57 ثانية. يمكنك الاطّلاع على إعدادات io.timeout.millis وapi.timeout في Edge لمزيد من المعلومات. |
تعيين io.timeout.millis وapi.timeout لـ Edge
على Edge، يرتبط تشغيل io.timeout.millis
وapi.timeout
.
في كل طلب إلى خادم وكيل لواجهة برمجة التطبيقات:
- يرسل جهاز التوجيه قيمة المهلة إلى معالج الرسائل. إنّ قيمة مهلة جهاز التوجيه هي إما قيمة
proxy_read_timeout
التي تم ضبطها من خلال المضيف الافتراضي الذي يعالج الطلب، أو قيمة المهلة التلقائية التي تبلغ 57 ثانية. - بعد ذلك، يضبط معالج الرسائل
api.timeout
:- إذا لم يتم ضبط
api.timeout
على مستوى الخادم الوكيل، عليك ضبطه على مهلة جهاز التوجيه. - إذا تم ضبط
api.timeout
على مستوى الخادم الوكيل، اضبطه في "معالج الرسائل" على قيمة أقل في مهلة جهاز التوجيه أو على قيمةapi.timeout
.
- إذا لم يتم ضبط
وتحدّد قيمة
api.timeout
الحد الأقصى لمقدار الوقت اللازم لتنفيذ الخادم الوكيل لواجهة برمجة التطبيقات من طلب واجهة برمجة التطبيقات إلى الاستجابة.بعد تنفيذ كل سياسة في الخادم الوكيل لواجهة برمجة التطبيقات، أو قبل أن يُرسِل "معالج الرسائل" الطلب إلى نقطة النهاية المستهدفة، يحتسب "معالج الرسائل" هذا الطلب (
api.timeout
- الوقت المنقضي من بداية الطلب). إذا كانت القيمة أقل من صفر، تنتهي صلاحية الحدّ الأقصى لمقدار الوقت اللازم لمعالجة الطلب وسيعرض "معالج الرسائل" رسالة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، اطّلع على:
لمحة عن نقاط نهاية hostTarget
تطلب علامة <HostedTarget/>
الفارغة من Edge استخدام تطبيق Node.js الذي يتم نشره في بيئة الأهداف المستضافة كهدف لها. لمعرفة التفاصيل، يُرجى الاطّلاع على
نظرة عامة على الأهداف المستضافة.