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

מוצג המסמך של 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 שרתי proxy בגלל קובצי התצורה הפגומים.

סיבות אפשריות

בדרך כלל קובצי התצורה 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
    

תוצאות ה-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 ל-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.

כדי לאבחן כראוי את הבעיה הזו (רק אם אתם משתמשים בענן פרטי 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. מפעילים מחדש את רכיב נתב הקצה.