קובצי תצורה שגויים

אתם צופים במסמכי התיעוד של 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

הודעות שגיאה

לא יוצגו הודעות שגיאה. עם זאת, יכול להיות שלא תוכלו להפעיל את שרתי ה-proxy של ה-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 ל-128K בקובץ /opt/apigee/customer/application/router.properties, כמו שמוצג בהמשך:
    conf_load_balancing_load.balancing.driver.proxy.busy.buffer.size=128k 

הדבר גרם לכך שקובצי ההגדרות סומנו כפגומים בספרייה /opt/apigee/nginx/conf.d.

  1. מריצים את הפקודה 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

תוצאות הבדיקה של ההגדרה מצביעות על כך שהערך של המאפיין 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 ל-512K בקובץ /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

הבעיה נפתרה והוסרו קובצי ההגדרות הבעייתיים.

דוגמה 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. עוצרים את הרכיב edge-router.
  2. מגבים את רכיב הנתב של Edge.
  3. מריצים את הפקודה הבאה כדי לשדרג ל-apigee-nginx 1.2.x:
  4. sudo yum update apigee-nginx
  5. מחיקת כל הקבצים *.bad בתיקייה /opt/apigee/nginx/conf.d.
  6. מפעילים מחדש את רכיב הנתב של קצה הרשת.