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

شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید .
اطلاعات

علامت

Edge Router با استفاده از 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 نشان می دهد.

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

  1. فرض کنید ویژگی " proxy_busy_buffers_size " را در فایل /opt/apigee/customer/application/router.properties به 128K به روز کرده اید، همانطور که در زیر نشان داده شده است:
    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 به 512K به‌روزرسانی کنید:
    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

مشکل برطرف شد و فایل های کانفیگ بد حذف شدند.

مثال 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 برگرداند. اگر نشد، این مراحل را دنبال کنید:

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