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

כרגע מוצג התיעוד של 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. מריצים את הכלי לבדיקת ההגדרות של 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
    

התוצאות של בדיקת config מראות שהערך של המאפיין proxy_busy_buffers_size צריך להיות שווה לערך proxy_busy_buffers_size או גדול ממנו, אך נראה שהוא מוגדר עם ערך שגוי.

  1. בודקים את הערכים שהוגדרו למאפיינים proxy_buffer_size ו-proxy_ bundle_buffers_size בקובץ 0-default.conf:
    proxy_buffer_size 512k;
    proxy_busy_buffers_size 128k;
    
  1. עדכן את הערך של proxy_AVAILABLE_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 (רק ב-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 לגרסה 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. מפעילים מחדש את הרכיב של נתב הקצה.