شما در حال مشاهده مستندات 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
پیامهای خطا
هیچ پیام خطایی مشاهده نخواهید کرد. با این حال، ممکن است به دلیل فایلهای پیکربندی نامناسب، نتوانید پروکسیهای API خود را اجرا کنید.
علل احتمالی
معمولاً فایلهای پیکربندی 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 برطرف کرد.
مثال ۱: مقدار نادرست برای یک ویژگی NGINX تنظیم شده است
- فرض کنید شما ویژگی “ proxy_busy_buffers_size ” را در فایل
/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 را در فایل
/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
مشکل برطرف شد و فایلهای پیکربندی معیوب حذف شدند.
مثال ۲: فرآیند ارتقاء 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 از ۱.۱۰.x به ۱.۱۲.x با شکست مواجه شده است. یک اشکال شناخته شده مربوط به ارتقاء Edge Private Cloud به نسخه ۱۸.۰۱ وجود دارد.
برای تشخیص صحیح این مشکل (فقط اگر از 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