يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات
Apigee X. المعلومات
المشكلة
يتم تنفيذ موجّه 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.
- يمكنك تشغيل أداة NGINX configtest لتحديد سبب الإخفاق:
/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"
إلى 128 كيلوبايت في ملف
/opt/apigee/customer/application/router.properties
، كما هو موضّح أدناه:conf_load_balancing_load.balancing.driver.proxy.busy.buffer.size=128k
أدى ذلك إلى وضع علامة "غير صالح" على ملفات الإعداد في
الدليل /opt/apigee/nginx/conf.d
.
- شغِّل الأمر NGINX configtest لتحديد سبب الخطأ:
/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_busy_buffers_size أو تزيد عنها، ولكن يبدو أنه تم ضبطها باستخدام قيمة غير صحيحة.
- تحقَّق من القيم التي تم ضبطها للسمتَين
proxy_buffer_size وproxy_مشغول_buffers_size
في ملف
0-default.conf
:proxy_buffer_size 512k; proxy_busy_buffers_size 128k;
- عدِّل قيمة client_مشغول_buffers_size إلى 512 كيلو في ملف
/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 (خاص 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. وإذا لم يكن مربوطًا، عليك اتّباع الخطوات التالية:
- أوقِف مكوِّن جهاز توجيه الحافة.
- احتفِظ بنسخة احتياطية من مكوّن جهاز توجيه الحافة.
- نفِّذ هذا الأمر للترقية إلى apigee-nginx 1.2.x:
- حذف كل الملفات البالغ عددها
*.bad
ضمن النطاق/opt/apigee/nginx/conf.d.
- أعِد تشغيل مكوِّن جهاز توجيه الحافة.
sudo yum update apigee-nginx