ضبط مهلة وحدات الإدخال والإخراج على أجهزة التوجيه

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

يوضّح هذا المستند كيفية ضبط مهلة وحدات الإدخال والإخراج على أجهزة التوجيه في Apigee Edge.

تمثّل مهلة وحدات الإدخال والإخراج على جهاز التوجيه الوقت الذي ينتظره جهاز التوجيه لتلقّي استجابة من معالج الرسائل، بعد إنشاء الاتصال وإرسال الطلب إلى معالج الرسائل. القيمة التلقائية لمهلة وحدات الإدخال والإخراج على جهاز التوجيه هي 57 ثانية.

يمكن زيادة مهلة وحدات الإدخال والإخراج لأجهزة التوجيه أو خفضها من القيمة التلقائية التي تبلغ 57 ثانية بناءً على احتياجاتك. ويمكن ضبطه بالطرق التالية:

  • في مضيف افتراضي
  • على جهاز التوجيه

تتحكّم الخصائص التالية في مهلة وحدات الإدخال والإخراج على أجهزة التوجيه:

اسم الموقع الموقع الجغرافي الوصف
proxy_read_timeout المضيف الافتراضي

تحدّد هذه السياسة الحد الأقصى للوقت الذي ينتظره جهاز التوجيه لتلقّي استجابة من معالج الرسائل، بعد إنشاء الاتصال وإرسال الطلب إلى معالج الرسائل.

وإذا لم يكن هناك استجابة من معالج الرسائل خلال فترة المهلة هذه، تنتهي مهلة جهاز التوجيه.

تأخذ هذه السمة تلقائيًا القيمة المضبوطة للسمة conf_load_balancing_load.balancing.driver.proxy.read.timeout على جهاز التوجيه. أما القيمة التلقائية، فهي 57 ثانية.

إذا تم تعديل هذه السمة باستخدام قيمة مهلة جديدة لمضيف افتراضي معيّن، ستتأثر فقط الخوادم الوكيلة لواجهة برمجة التطبيقات التي تستخدم هذا المضيف الظاهري المحدّد.

conf_load_balancing_load.balancing.driver.proxy.read.timeout جهاز التوجيه

تحدّد هذه السياسة الحد الأقصى للوقت الذي ينتظره جهاز التوجيه لتلقّي استجابة من معالج الرسائل، بعد إنشاء الاتصال وإرسال الطلب إلى معالج الرسائل.

وإذا لم يكن هناك استجابة من معالج الرسائل خلال فترة المهلة هذه، تنتهي مهلة جهاز التوجيه.

يتم استخدام هذه الخاصية لجميع المضيفين الافتراضيين على جهاز التوجيه هذا.

القيمة التلقائية لهذه السمة هي 57 ثانية.

يمكنك تعديل هذه السمة كما هو موضّح في ضبط مهلة وحدات الإدخال والإخراج على أجهزة التوجيه أدناه، أو يمكنك استبدال هذه القيمة من خلال ضبط السمة proxy_read_timeout على مستوى المضيف الافتراضي.

يمكنك ضبط الفاصل الزمني لهذه السمة على أنّه ليس بالثواني باستخدام الترميز التالي:

ms: milliseconds
s:  seconds (default)
m:  minutes
h:  hours
d:  days
w:  weeks
M:  months (length of 30 days)
y:  years (length of 365 days)
conf_load_balancing_load.balancing.driver.nginx.upstream_next_timeout جهاز التوجيه

تحدّد هذه السياسة إجمالي الوقت الذي ينتظره جهاز التوجيه لتلقّي استجابة من جميع معالِجات الرسائل، بعد إنشاء الاتصال وإرسال الطلب إلى كل معالج رسائل.

وينطبق هذا الأمر عندما يتضمن تثبيت Edge عدة معالِجات رسائل، ويتم تفعيل إعادة المحاولة عند حدوث أخطاء. وتكون قيمتها أحد ما يلي:

  • القيمة الحالية لـ conf_load_balancing_load.balancing.driver.proxy.read.timeout
  • إن القيمة التلقائية التي تبلغ 57 ثانية

كما هي الحال في السمة conf_load_balancing_load.balancing.driver.proxy.read.timeout، يمكنك تحديد فواصل زمنية بخلاف القيمة التلقائية (بالثواني).

قبل البدء

قبل استخدام الخطوات الواردة في هذا المستند، تأكَّد من فهم المواضيع التالية:

ضبط مهلة وحدات الإدخال والإخراج في المضيف الظاهري

يوضّح هذا القسم طريقة ضبط مهلة وحدات الإدخال والإخراج في المضيف الافتراضي المرتبط بمؤسسة وبيئة. يمكن ضبط مهلة وحدات الإدخال والإخراج في المضيف الافتراضي من خلال السمة proxy_read_timeout التي تمثّل قيمة مهلة وحدات الإدخال والإخراج بالثواني.

يمكنك تهيئة المضيف الظاهري باستخدام إحدى الطرق التالية:

  • واجهة مستخدم Edge
  • واجهة برمجة تطبيقات Edge

واجهة مستخدم Edge

لتكوين المضيف الظاهري باستخدام واجهة مستخدم Edge، قم بما يلي:

  1. سجِّل الدخول إلى واجهة مستخدم Edge.
  2. انتقِل إلى المشرف > المضيفون الافتراضيون.
  3. اختَر بيئة معيّنة تريد إجراء هذا التغيير فيها.
  4. اختَر المضيف الافتراضي المحدد الذي تريد ضبط قيمة مهلة الإدخال/الإخراج الجديدة له.
  5. ضمن الخصائص، عدِّل قيمة مهلة قراءة الخادم الوكيل بالثواني.

    على سبيل المثال، إذا كنت تريد تغيير المهلة إلى 120 ثانية، اكتب 120 كما هو موضّح في الشكل التالي:

    قيمة مهلة قراءة الخادم الوكيل 120

  6. احفظ التغيير.

واجهة برمجة تطبيقات Edge

لإعداد المضيف الظاهري باستخدام واجهة برمجة تطبيقات Edge، قم بما يلي:

  1. احصل على الإعدادات الحالية للمضيف الافتراضي باستخدام واجهة برمجة التطبيقات الحصول على المضيف الافتراضي كما هو موضّح أدناه:

    مستخدم Google Cloud العام

    curl -v -X GET https//api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                    

    مستخدم Cloud خاص

    curl -v -X GET http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                    

    المكان:

    {organization-name} هو اسم المؤسسة

    {environment-name} هو اسم البيئة.

    {virtualhost-name} هو اسم المضيف الافتراضي

    نموذج إعداد المضيف الافتراضي

        {
          "hostAliases": [
            "api.myCompany,com"
          ],
          "interfaces": [],
          "listenOptions": [],
          "name": "secure",
          "port": "443",
          "retryOptions": [],
          "sSLInfo": {
            "ciphers": [],
            "clientAuthEnabled": "false",
            "enabled": "true",
            "ignoreValidationErrors": false,
            "keyAlias": "myCompanyKeyAlias",
            "keyStore": "ref://myCompanyKeystoreref",
            "protocols": []
          },
          "useBuiltInFreeTrialCert": false
        }
    
  2. أضِف السمة proxy_read_timeout إلى حمولة JSON الحالية لإعدادات المضيف الافتراضي ضمن properties مع استخدام القيمة بالثواني.

    على سبيل المثال، لتغيير مهلة وحدات الإدخال والإخراج إلى 120 ثانية، أضِف مجموعة رموز properties كما هو موضّح أدناه:

    نموذج إعداد المضيف الافتراضي المعدَّل

    {
      "hostAliases": [
        "api.myCompany,com",
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "properties": {
        "property": [
          {
            "name": "proxy_read_timeout",
            "value": "120"
          }
        ]
      },
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }
    
  3. احفظ إعدادات المضيف الافتراضي المعدَّلة في ملف. مثلاً: virtualhost-payload.json
  4. عدِّل إعدادات virtualhost من خلال إدخال التغيير باستخدام واجهة برمجة التطبيقات تحديث المضيف الافتراضي API على النحو التالي:

    مستخدم Google Cloud العام

    curl -v -X POST Content-Type: application/json
    https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
                

    مستخدم Cloud خاص

    curl -v -X POST Content-Type: application/json
    http://<management-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -d @virtualhost-payload.json -u <username>
                

    المكان:

    {organization-name} هو اسم المؤسسة

    {environment-name} هو اسم البيئة.

    {virtualhost-name} هو اسم المضيف الافتراضي

التحقق من مهلة وحدات الإدخال والإخراج على الأجهزة المضيفة الافتراضية

يوضّح هذا القسم طريقة التحقّق من أنّه تم تعديل مهلة وحدات الإدخال والإخراج بنجاح على المضيف الافتراضي باستخدام واجهة برمجة تطبيقات Edge.

  1. نفِّذ واجهة برمجة تطبيقات الحصول على مضيف افتراضي للحصول على إعدادات virtualhost كما هو موضّح أدناه:

    مستخدم Google Cloud العام

    curl -v -X GET https://api.enterprise.apigee.com/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                  

    مستخدم Cloud خاص

    curl -v -X GET http://<management server-host>:<port #>/v1/organizations/{organization-name}/environments/{environment-name}/virtualhosts/{virtualhost-name} -u <username>
                  

    المكان:

    {organization-name} هو اسم المؤسسة

    {environment-name} هو اسم البيئة.

    {virtualhost-name} هو اسم المضيف الافتراضي

  2. تحقَّق من ضبط السمة proxy_read_timeout على القيمة الجديدة.

    نموذج إعداد المضيف الافتراضي المعدَّل

    {
      "hostAliases": [
        "api.myCompany,com",
      ],
      "interfaces": [],
      "listenOptions": [],
      "name": "secure",
      "port": "443",
      "retryOptions": [],
      "properties": {
        "property": [
          {
            "name": "proxy_read_timeout",
            "value": "120"
          }
        ]
      },
      "sSLInfo": {
        "ciphers": [],
        "clientAuthEnabled": "false",
        "enabled": "true",
        "ignoreValidationErrors": false,
        "keyAlias": "myCompanyKeyAlias",
        "keyStore": "ref://myCompanyKeystoreref",
        "protocols": []
      },
      "useBuiltInFreeTrialCert": false
    }
    

    في المثال أعلاه، لاحظ أنه تم ضبط proxy_read_timeout على القيمة الجديدة وهي 120 ثانية.

  3. إذا كانت القيمة القديمة لـ proxy_read_timeout, لا تزال تظهر لك، تأكَّد من أنّك اتّبعت جميع الخطوات الموضّحة في ضبط مهلة وحدات الإدخال والإخراج في المضيف الافتراضي بشكل صحيح. إذا فاتتك أي خطوة، كرِّر جميع الخطوات مرة أخرى بشكلٍ صحيح.
  4. إذا كنت لا تزال غير قادر على تعديل مهلة وحدات الإدخال والإخراج، يُرجى التواصل مع فريق دعم Apigee Edge.

ضبط مهلة وحدات الإدخال والإخراج على أجهزة التوجيه

يوضح هذا القسم كيفية ضبط مهلة وحدات الإدخال والإخراج على أجهزة التوجيه. يمكن ضبط مهلة وحدات الإدخال والإخراج من خلال خاصية جهاز التوجيه conf_load_balancing_load.balancing.driver.proxy.read.timeout، التي تمثّل قيمة مهلة وحدات الإدخال والإخراج بالثواني.

لضبط مهلة وحدات الإدخال والإخراج على أجهزة التوجيه، يمكنك إجراء ما يلي:

  1. على جهاز التوجيه، افتح الملف التالي في أحد برامج التعديل. إذا لم يكن موجودًا من قبل، يجب إنشاؤه.
    /opt/apigee/customer/application/router.properties
    

    على سبيل المثال، لفتح الملف باستخدام vi، أدخِل الأمر التالي:

    vi /opt/apigee/customer/application/router.properties
    
  2. أضِف سطرًا بالتنسيق التالي إلى ملف properties، مع استبدال القيمة time_in_seconds بقيمة:
  3. conf_load_balancing_load.balancing.driver.proxy.read.timeout=time_in_seconds
    

    على سبيل المثال، لتغيير مهلة وحدات الإدخال والإخراج على جهاز التوجيه إلى 120 ثانية، أضِف السطر التالي:

    conf_load_balancing_load.balancing.driver.proxy.read.timeout=120
    

    ويمكنك أيضًا تعديل مهلة وحدات الإدخال والإخراج بالدقائق. على سبيل المثال، لتغيير المهلة إلى دقيقتَين، أضِف السطر التالي:

    conf_load_balancing_load.balancing.driver.proxy.read.timeout=2m
    
  4. احفظ التغييرات.
  5. تأكَّد من أنّ ملف السمات هذا يملكه مستخدم apigee كما هو موضّح أدناه:
    chown apigee:apigee /opt/apigee/customer/application/router.properties
    
  6. أعِد تشغيل جهاز التوجيه كما هو موضّح أدناه:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
    
  7. إذا كان لديك أكثر من جهاز توجيه، يمكنك تكرار الخطوات السابقة على جميع أجهزة التوجيه.

التحقق من مهلة وحدات الإدخال والإخراج على أجهزة التوجيه

يوضّح هذا القسم طريقة التحقّق من أنّه تم تعديل مهلة وحدات الإدخال والإخراج بنجاح على أجهزة التوجيه.

على الرغم من استخدام الرمز المميّز conf_load_balancing_load.balancing.driver.proxy.read.timeout لضبط مهلة وحدات الإدخال والإخراج على جهاز التوجيه، عليك التحقّق مما إذا كان قد تم ضبط السمة الفعلية proxy_read_timeout على القيمة الجديدة.

  1. ابحث عن السمة proxy_read_timeout في دليل /opt/nginx/conf.d وتحقَّق مما إذا تم ضبطها باستخدام القيمة الجديدة على النحو التالي:
    grep -ri "proxy_read_timeout" /opt/nginx/conf.d
    
  2. إذا تم ضبط قيمة مهلة الإدخال/الإخراج الجديدة بنجاح على جهاز التوجيه، سيعرض الأمر أعلاه القيمة الجديدة في جميع ملفات إعداد المضيف الافتراضي.

    في ما يلي نموذج للنتيجة من الأمر grep الوارد أعلاه عندما تبلغ مهلة وحدات الإدخال والإخراج 120 ثانية:

    /opt/nginx/conf.d/0-default.conf:proxy_read_timeout 120;
    /opt/nginx/conf.d/0-edge-health.conf:proxy_read_timeout 1s;
    

    في مثال الإخراج أعلاه، لاحظ أنّه تم ضبط السمة proxy_read_timeout على القيمة الجديدة 120 في 0-default.conf، وهي ملف الإعداد للمضيف الافتراضي التلقائي. ويشير ذلك إلى أنّه تم ضبط مهلة وحدات الإدخال والإخراج بنجاح على 120 ثانية على جهاز التوجيه.

  3. إذا كانت القيمة القديمة للسمة proxy_read_timeout لا تزال تظهر لك، تأكَّد من أنّك اتّبعت جميع الخطوات الموضّحة في ضبط مهلة وحدات الإدخال والإخراج على أجهزة التوجيه بشكلٍ صحيح. إذا فاتتك أي خطوة، كرِّر جميع الخطوات مرّة أخرى بشكل صحيح.
  4. إذا كنت لا تزال غير قادر على تعديل مهلة وحدات الإدخال والإخراج، يُرجى التواصل مع فريق دعم Apigee Edge.

الخطوات التالية

تعرَّف على المزيد من المعلومات عن ضبط مهلة وحدات الإدخال والإخراج في معالج الرسائل.