أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى
مستندات Apigee X. info
يتناول هذا الموضوع خصائص النقل التي يمكن ضبطها في إعدادات 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>مواصفات السمة transport الخاصة بـ 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 <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 معيّنة من الطلب يجب ضبطها على الطلب الصادر إلى الخدمة المستهدَفة. على سبيل المثال، لتمرير عنوان passthrough 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 transport
| اسم السمة | القيمة التلقائية | الوصف |
|---|---|---|
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، يُرجى الاطّلاع على:
لمحة عن نقاط نهاية HostedTarget
تطلب علامة <HostedTarget/> فارغة من Edge استخدام تطبيق Node.js
كنقطة استهداف، ويتم نشر هذا التطبيق في بيئة "نقاط الاستهداف المستضافة". لمزيد من التفاصيل، يُرجى الاطّلاع على نظرة عامة على "الاستهداف المستضاف".