مرجع خصائص نقاط النهاية

أنت تعرض مستندات 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

3000

انتهت مهلة الاتصال المستهدَف. تعرض Edge رمز حالة HTTP 503 في حال الاتصال. انتهاء المهلة. في بعض الحالات، قد يتم عرض رمز حالة HTTP 504 عند LoadBalancer يستخدم في تعريف TargetServer وتنتهي المهلة.

io.timeout.millis 55000

إذا لم تكن هناك بيانات للقراءة للعدد المحدد من المللي ثانية، أو إذا كان المقبس غير جاهز لكتابة البيانات للعدد المحدد من المللي ثانية، إذًا فإن المعاملة كمهلة.

  • في حال انتهاء المهلة أثناء كتابة طلب HTTP، 408, Request Timeout .
  • إذا انتهت المهلة أثناء قراءة استجابة HTTP، 504, Gateway Timeout .

يجب أن تكون هذه القيمة دائمًا أصغر من قيمة سمة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

بشكل تلقائي (false)، تتم قراءة حمولات طلبات HTTP في المخزن المؤقت والسياسات التي يمكنها العمل على عمل الحمولة كما هو متوقع. في الحالات التي تكون فيها الحمولات أكبر من حجم المخزن المؤقت (10 ميغابايت)، فيمكنك تعيين إلى true. عند ضبط السياسة true، لا تتم قراءة حمولات بيانات طلبات HTTP في المخزن المؤقت. هم كما هي مباشرةً إلى نقطة النهاية المستهدفة. في هذه الحالة، أي سياسات تعمل على يتم تجاوز الحمولة في تدفق طلب TargetEndpoint. راجِع أيضًا طلبات البث والردود.

response.streaming.enabled false

بشكل تلقائي (false)، تتم قراءة حمولات استجابة HTTP في المخزن المؤقت والسياسات التي يمكنها العمل على عمل الحمولة كما هو متوقع. في الحالات التي تكون فيها الحمولات أكبر من حجم المخزن المؤقت (10 ميغابايت)، فيمكنك تعيين إلى true. عند ضبط السياسة true، لا تتم قراءة حمولات استجابة HTTP في المخزن المؤقت. هم يتم بثّها كما هي في مسار استجابة ProxyEndpoint. في هذه الحالة، أي سياسات تعمل على الحمولة في تدفق استجابة TargetEndpoint. يمكن أيضًا مراجعة طلبات البث الردود.

success.codes لا ينطبق

بشكل تلقائي، يتعامل Apigee Edge مع رمز HTTP 4XX أو 5XX كأخطاء، ويتعامل مع رمز HTTP. نجاح 1XX و2XX و3XX تتيح هذه الخاصية تعريفًا صريحًا لرموز النجاح، على سبيل المثال، يتعامل 2XX, 1XX, 505 مع أي رموز استجابة HTTP لـ 100 و200 و505 على أنها للنجاح.

يؤدي ضبط هذه السمة إلى استبدال القيم التلقائية. لذلك، إذا أردت إضافة رمز HTTP 400 إلى قائمة رموز النجاح التلقائية، اضبط هذه السمة على:

&lt;Property name="success.codes">1XX,2XX,3XX,400</Property>

إذا كنت تريد أن يتم التعامل مع رمز HTTP 400 فقط كرمز نجاح، اضبط السمة. كـ:

&lt;Property name="success.codes">400</Property>

من خلال ضبط رمز HTTP 400 باعتباره رمز النجاح الوحيد، تصبح الرموز 1XX و2XX و3XX هي على أنها إخفاقات.

compression.algorithm لا ينطبق تعيد Apigee Edge تلقائيًا توجيه الطلبات إلى الهدف باستخدام نوع الضغط نفسه. حسب طلب العميل. إذا تم استلام الطلب من العميل باستخدام، على سبيل المثال، gzip الضغط، ثم يعيد Apigee Edge توجيه الطلب للاستهداف باستخدام ضغط gzip. في حال حذف يستخدم الاستجابة المستلَمة من الهدف تهبئة، ثم يعيد Apigee Edge الرد إلى العميل باستخدام الانكماش. القيمتان المسموح بإدراجهما هما:
  • gzip: إرسال الرسائل دائمًا باستخدام ضغط gzip
  • deflate: إرسال الرسالة دائمًا باستخدام ضغط الانكماش
  • بدون: إرسال الرسالة دائمًا بدون أي ضغط

راجع أيضًا: هل يتيح Apigee الضغط أو إلغاء الضغط باستخدام GZIP أو الانضغاط؟

request.retain.headers.
enabled
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.
enabled
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.
enabled
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.
enabled
false بشكل تلقائي (false)، تتم قراءة حمولات طلبات HTTP في المخزن المؤقت والسياسات التي يمكن أن تعمل على عمل الحمولة كما هو متوقع. وفي الحالات التي تكون فيها الحمولات أكبر من حجم المخزن المؤقت (10 ميغابايت)، فيمكنك تعيين هذا إلى true. عند ضبط السياسة true، لا تتم قراءة حمولات بيانات طلبات HTTP في المخزن المؤقت. هم وبثها كما هي إلى تدفق طلب TargetEndpoint في هذه الحالة، أي سياسات تعمل على الحمولة في تدفق طلب ProxyEndpoint. راجِع أيضًا طلبات البث والردود.
response.streaming.
enabled
false بشكل تلقائي (false)، تتم قراءة حمولات استجابة HTTP في المخزن المؤقت والسياسات التي يمكنها العمل على عمل الحمولة كما هو متوقع. في الحالات التي تكون فيها الحمولات أكبر من حجم المخزن المؤقت (10 ميغابايت)، فيمكنك تعيين إلى true. عند ضبط السياسة true، لا تتم قراءة حمولات استجابة HTTP في المخزن المؤقت. هم كما هي مع العميل. في هذه الحالة، فإن أي سياسات تعمل على الحمولة في تم تجاوز مسار استجابة ProxyEndpoint. راجِع أيضًا طلبات البث والردود.
compression.algorithm لا ينطبق

تلقائيًا، تستخدم Apigee Edge نوع الضغط المحدّد لأي رسالة يتم استلامها. بالنسبة على سبيل المثال، حيث يرسل العميل طلبًا يستخدم ضغط gzip، في Apigee Edge يعيد توجيه الطلب للاستهداف باستخدام ضغط gzip. يمكنك ضبط ميزة الضغط الخوارزميات بشكل صريح من خلال تعيين هذه الخاصية على TargetEndpoint أو ProxyEndpoint (نقطة نهاية الخادم الوكيل). القيمتان المسموح بإدراجهما هما:

  • gzip: إرسال الرسائل دائمًا باستخدام ضغط gzip
  • deflate: إرسال الرسالة دائمًا باستخدام ضغط الانكماش
  • بدون: إرسال الرسالة دائمًا بدون أي ضغط

راجع أيضًا: هل يتيح Apigee الضغط أو إلغاء الضغط باستخدام GZIP أو الانضغاط؟

api.timeout لا ينطبق

ضبط المهلة للخوادم الوكيلة الفردية لواجهة برمجة التطبيقات

يمكنك إعداد الخوادم الوكيلة لواجهة برمجة التطبيقات، حتى تلك التي تحتوي على البث، للانتهاء بعد وقت محدد بالحالة 504 Gateway Timeout. حالة الاستخدام الأساسية هي للعملاء الذين لديهم خوادم وكيلة لواجهة برمجة التطبيقات والتي تستغرق وقتًا أطول في التنفيذ. على سبيل المثال، لنفترض أنك بحاجة إلى خوادم وكيلة محددة لانتهاء المهلة في 3 دقيقة. في ما يلي طريقة استخدام "api.timeout".

  1. تأكَّد أولاً من ضبط جهاز موازنة الحمل وجهاز التوجيه ومعالج الرسائل مهلة بعد ثلاث دقائق.
  2. ثم اضبط الأجهزة الوكيلة ذات الصلة لتنتهي خلال ثلاث دقائق. حدد القيمة في مللي ثانية. مثلاً: <Property name="api.timeout">180000</Property>
  3. ومع ذلك، تجدر الإشارة إلى أنّ رفع مهلات النظام قد يؤدي إلى حدوث مشاكل في الأداء، لأنّ جميع الخوادم الوكيلة التي لا تتضمّن إعداد api.timeout تستخدم طريقة التحميل الجديدة مهلة جهاز الموازِن وجهاز التوجيه ومعالج الرسائل. لذا، عليك إعداد خوادم وكيلة أخرى لواجهة برمجة التطبيقات ولا تتطلب مهلات أطول لاستخدام مهلات أقل. على سبيل المثال، يحدد ما يلي ستنتهي مهلة الخادم الوكيل لواجهة برمجة التطبيقات بعد دقيقة واحدة:
    <Property name="api.timeout">60000</Property>

لا يمكنك ضبط هذه السمة باستخدام متغيّر.

يمكن أيضًا للعملاء الذين لا يمكنهم تعديل مهلات Edge ضبط خادم وكيل لواجهة برمجة التطبيقات. المهلة، طالما أن المهلة أقصر من معالج رسائل Edge العادي النهائية لمدة 57 ثانية.

راجِع إعداد io.timeout.millis وapi.timeout لنظام Edge. لمعرفة المزيد.

إعداد io.timeout.millis وapi.timeout لنظام Edge

على Edge، تتم عملية تشغيل io.timeout.millis وapi.timeout. مرتبطين معًا. عند كل طلب يتم إرساله إلى خادم وكيل لواجهة برمجة التطبيقات:

  1. يرسل جهاز التوجيه قيمة المهلة إلى معالج الرسائل. قيمة مهلة جهاز التوجيه إما قيمة proxy_read_timeout التي حددها المضيف الافتراضي الذي يعالج الطلب، أو قيمة المهلة التلقائية وهي 57 ثانية.
  2. يضبط معالج الرسائل بعد ذلك api.timeout:
    1. إذا لم يتم ضبط api.timeout على مستوى الخادم الوكيل، اضبطه على "مهلة جهاز التوجيه".
    2. إذا تم ضبط api.timeout على مستوى الخادم الوكيل، اضبطه في معالج الرسائل على أقلّ من مهلة جهاز التوجيه أو قيمة api.timeout.
  3. تحدّد قيمة api.timeout الحد الأقصى لمدة الوقت الذي يستغرقه وكيل واجهة برمجة التطبيقات تنفيذها من طلب البيانات من واجهة برمجة التطبيقات إلى الاستجابة.

    بعد تنفيذ كل سياسة في الخادم الوكيل لواجهة برمجة التطبيقات، أو قبل أن يرسل معالج الرسائل الطلب إلى نقطة النهاية المستهدفة، يحسبه معالج الرسائل (api.timeout - الوقت المنقضي من بداية الطلب). وإذا كانت القيمة أقل من صفر، يعني ذلك انتهاء صلاحية الحدّ الأقصى لوقت معالجة الطلب فسيرجع معالج الرسائل 504.

  4. تحدّد قيمة io.timeout.millis الحدّ الأقصى لمقدار الوقت الذي تستغرقه نقطة النهاية المستهدفة. أن يستجيبوا.

    قبل الاتصال بنقطة نهاية مستهدفة، يحدد معالج الرسائل أقل (api.timeout - الوقت المنقضي من بداية الطلب) وio.timeout.millis. بعد ذلك، تضبط io.timeout.millis على هذه القيمة.

    • في حال انتهاء المهلة أثناء كتابة طلب HTTP، 408, Request Timeout .
    • إذا انتهت المهلة أثناء قراءة استجابة HTTP، 504, Gateway Timeout .

لمحة عن ScriptTarget لتطبيقات Node.js

يُستخدم العنصر ScriptTarget لدمج تطبيق Node.js في الخادم الوكيل. بالنسبة للحصول على معلومات حول استخدام Node.js و ScriptTarget، راجع:

لمحة عن نقاط النهاية HostedTarget

علامة <HostedTarget/> فارغة تطلب من Edge استخدام Node.js كهدف لها. تطبيق جديد يتم نشره في بيئة الأهداف المستضافة. للحصول على التفاصيل، يمكنك مراجعة نظرة عامة على الأهداف المستضافة.