فایل های پیکربندی بد

شما در حال مشاهده مستندات 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 یا به دلیل اعمال تغییرات نادرست در یک میزبان مجازی، به عنوان فایل‌های بد علامت‌گذاری می‌شوند.

تشخیص

  1. پسوند .bad را از نام فایل‌های موجود در دایرکتوری /opt/nginx/conf.d حذف کنید تا به .conf ختم شوند.
  1. برای تعیین دلیل خرابی، ابزار configtest NGINX را اجرا کنید:
    /opt/nginx/scripts/apigee-nginx configtest

وضوح تصویر

  1. اگر تست پیکربندی دلیل فایل‌های پیکربندی نامناسب را شناسایی کرد، با ایجاد تغییرات مناسب در ویژگی خاص در فایل /opt/apigee/customer/application/router.properties یا میزبان مجازی، مشکل را برطرف کنید.
  1. پوشه /opt/nginx/conf.d را حذف کنید:
    rm -rf /opt/nginx/conf.d
  1. روتر را مجدداً راه اندازی کنید:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
  1. دیگر نباید فایل‌های پیکربندی نامناسب را در دایرکتوری /opt/nginx/conf.d مشاهده کنید.

اگر مشکل همچنان ادامه داشت، با پشتیبانی Apigee Edge تماس بگیرید.

در اینجا مثالی آورده شده است که نشان می‌دهد چگونه می‌توان مشکل را بر اساس اطلاعات ارائه شده توسط تست پیکربندی NGINX برطرف کرد.

مثال ۱: مقدار نادرست برای یک ویژگی NGINX تنظیم شده است

  1. فرض کنید شما ویژگی “ 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 به عنوان فایل‌های خراب علامت‌گذاری شوند.

  1. دستور 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 باشد، اما به نظر می‌رسد با مقدار نادرستی تنظیم شده است.

  1. مقادیر تعیین‌شده برای ویژگی‌های proxy_buffer_size و proxy_busy_buffers_size را در فایل 0-default.conf بررسی کنید:
    proxy_buffer_size 512k;
    proxy_busy_buffers_size 128k;
  1. مقدار proxy_busy_buffers_size را در فایل /opt/apigee/customer/application/router.properties به ۵۱۲ کیلوبایت به‌روزرسانی کنید:
    conf_load_balancing_load.balancing.driver.proxy.busy.buffer.size=512k
  1. پوشه /opt/nginx/conf.d را حذف کنید:
    rm -rf /opt/nginx/conf.d
  1. روتر را مجدداً راه اندازی کنید:
    /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 برگرداند. اگر اینطور نیست، این مراحل را دنبال کنید:

  1. مؤلفه روتر لبه را متوقف کنید.
  2. از کامپوننت روتر لبه‌ای پشتیبان تهیه کنید.
  3. برای ارتقا به apigee-nginx 1.2.x، این دستور را اجرا کنید:
  4. sudo yum update apigee-nginx
  5. تمام فایل‌های *.bad را در مسیر /opt/apigee/nginx/conf.d.
  6. مؤلفه روتر لبه را مجدداً راه‌اندازی کنید.