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

أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلىمستندات Apigee X.
info

يوضّح هذا المستند كيفية ضبط مهلة الإدخال والإخراج على أجهزة توجيه 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. احصل على الإعدادات الحالية للمضيف الافتراضي باستخدام واجهة برمجة التطبيقات "الحصول على مضيف افتراضي" كما هو موضّح أدناه:

    مستخدم Public Cloud

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

    مستخدم Private 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 باستخدام التغيير من خلال واجهة برمجة التطبيقات "تعديل مضيف افتراضي" على النحو التالي:

    مستخدم Public 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>
                

    مستخدم Private 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 كما هو موضّح أدناه:

    مستخدم Public Cloud

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

    مستخدم Private 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.

ما هي الخطوة التالية؟

التعرّف على ضبط مهلة الإدخال والإخراج في "معالج الرسائل"