أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلىمستندات Apigee X. info
المشكلة
يتم تنفيذ جهاز توجيه Edge باستخدام NGINX. أثناء عملية ترقية Edge أو عند
تغيير إعدادات جهاز التوجيه، قد تظهر لك أخطاء في إعدادات NGINX. عند حدوث هذه
الأخطاء، يضع Edge علامة على جميع ملفات إعدادات NGINX التي تسبّبت في المشكلة في
/opt/nginx/conf.d:
-rw-r--r-- 1 apigee apigee 522 Jul 20 08:41 0-default.conf.bad -rw-r--r-- 1 apigee apigee 577 Jul 20 08:42 0-fallback.conf -rw-r--r-- 1 apigee apigee 1062 Jul 20 08:18 0-map.conf -rw-r--r-- 1 apigee apigee 1887 Jul 20 08:42 custorg_test_default.conf.bad
رسائل الخطأ
لن تظهر لك أي رسائل خطأ. ومع ذلك، قد لا تتمكّن من تنفيذ خوادمك الوكيلة لواجهة برمجة التطبيقات بسبب ملفات الإعدادات غير الصالحة.
الأسباب المحتملة
عادةً ما يتم وضع علامة على ملفات إعدادات NGINX بأنّها غير صالحة إما بسبب ضبط قيمة واحدة أو أكثر غير صحيحة لـ
خصائص NGINX في الملف /opt/apigee/customer/application/router.properties أو إجراء تغييرات غير صحيحة على مضيف افتراضي.
التشخيص
- أزِل اللاحقة .bad من أسماء الملفات في الدليل
/opt/nginx/conf.dبحيث تنتهي بـ .conf.
- شغِّل أداة configtest في NGINX لتحديد سبب الخطأ:
/opt/nginx/scripts/apigee-nginx configtest
الدقة
- إذا حدّد اختبار الإعدادات سبب ملفات الإعدادات غير الصالحة، عليك حلّ المشكلة من خلال
إجراء التغييرات المناسبة على الخاصية المحدّدة في
/opt/apigee/customer/application/router.propertiesأو المضيف الافتراضي.
- أزِل الدليل
/opt/nginx/conf.d:rm -rf /opt/nginx/conf.d
- أعِد تشغيل جهاز التوجيه:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- لن تظهر لك ملفات الإعدادات غير الصالحة في الـ
/opt/nginx/conf.dدليل بعد الآن.
في حال استمرار المشكلة، يُرجى التواصل مع فريق دعم Apigee Edge.
في ما يلي مثال يوضّح كيفية حلّ المشكلة استنادًا إلى المعلومات التي يقدّمها اختبار إعدادات NGINX.
المثال 1: تم ضبط قيمة غير صحيحة لخاصية NGINX
- لنفترض أنّك عدّلت الخاصية "proxy_busy_buffers_size"
إلى 128K في الملف
/opt/apigee/customer/application/router.properties، كما هو موضّح أدناه:conf_load_balancing_load.balancing.driver.proxy.busy.buffer.size=128k
أدى ذلك إلى وضع علامة على ملفات الإعدادات بأنّها غير صالحة في /opt/apigee/nginx/conf.d
الدليل.
- شغِّل الأمر configtest في NGINX لتحديد سبب الخطأ:
/opt/nginx/scripts/apigee-nginx configtest nginx: [emerg] "proxy_busy_buffers_size" must be equal to or greater than the maximum of the value of "proxy_buffer_size" and one of the "proxy_buffers" in /opt/nginx/conf/nginx.conf:47 nginx: configuration file /opt/nginx/conf/nginx.conf test failed
تشير نتائج configtest إلى أنّ قيمة الخاصية proxy_busy_buffers_size يجب أن تكون أكبر من أو مساوية لقيمة proxy_buffer_size، ولكن يبدو أنّه تم ضبطها بقيمة غير صحيحة.
- تحقَّق من القيم التي تم ضبطها للخاصيتَين
proxy_buffer_size وproxy_busy_buffers_size
في الملف
0-default.conf:proxy_buffer_size 512k; proxy_busy_buffers_size 128k;
- عدِّل قيمة proxy_busy_buffers_size إلى 512K في
/opt/apigee/customer/application/router.propertiesالملف:conf_load_balancing_load.balancing.driver.proxy.busy.buffer.size=512k
- أزِل المجلد
/opt/nginx/conf.d:rm -rf /opt/nginx/conf.d
- أعِد تشغيل جهاز التوجيه:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
تم حلّ المشكلة وإزالة ملفات الإعدادات غير الصالحة.
المثال 2: يتعذّر على العملية ترقية NGINX (Private Cloud 18.01 فقط)
لنفترض أنّك شغّلت configtest وحصلت على الردود التالية:
/apigee-nginx configtest nginx: the configuration file /opt/nginx/conf/nginx.conf syntax is ok nginx: [emerg] zero size shared memory zone "perclient" nginx: configuration file /opt/nginx/conf/nginx.conf test failed
يشير هذا الخطأ إلى تعذُّر ترقية NGINX من الإصدار 1.10.x إلى الإصدار 1.12.x. هناك خطأ معروف مرتبط بترقية Edge Private Cloud إلى الإصدار 18.01.
لتشخيص هذه المشكلة بشكل صحيح (فقط إذا كنت تستخدم Private Cloud 18.01)، اتّبِع الخطوات التالية:
rpm -aq | grep apigee-nginx
يجب أن يعرض هذا الأمر ملف rpm المثبَّت على أنّه الإصدار 1.12.x. إذا لم يحدث ذلك، اتّبِع الخطوات التالية:
- أوقِف مكوّن edge-router.
- احتفِظ بنسخة احتياطية من مكوّن edge-router.
- شغِّل هذا الأمر للترقية إلى apigee-nginx 1.2.x:
- احذف جميع الملفات
*.badضِمن/opt/apigee/nginx/conf.d. - أعِد تشغيل مكوّن edge-router.
sudo yum update apigee-nginx