אתם צופים במסמכי התיעוד של 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, או כי שינויים שגויים מבוצעים למארח וירטואלי.
אבחון
- מסירים את הסיומת .bad משמות הקבצים בספרייה
/opt/nginx/conf.dכדי שהם יסתיימו בסיומת .conf.
- מריצים את הכלי configtest של NGINX כדי לגלות את הסיבה לכישלון:
/opt/nginx/scripts/apigee-nginx configtest
רזולוציה
- אם בדיקת התצורה מזהה את הסיבה לקובצי התצורה הבעייתיים, צריך לתקן את הבעיה על ידי ביצוע השינויים המתאימים בנכס הספציפי בקובץ
/opt/apigee/customer/application/router.propertiesאו במארח הווירטואלי.
- מסירים את הספרייה
/opt/nginx/conf.d:rm -rf /opt/nginx/conf.d
- מפעילים מחדש את הנתב:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
- לא אמורים להופיע יותר קובצי הגדרה פגומים בספרייה
/opt/nginx/conf.d.
אם הבעיה נמשכת, אפשר לפנות לתמיכה של Apigee Edge.
הנה דוגמה שמראה איך לפתור את הבעיה על סמך המידע שסופק על ידי בדיקת התצורה של NGINX.
דוגמה 1: ערך שגוי שהוגדר למאפיין NGINX
- נניח שעדכנתם את המאפיין 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.
- מריצים את הפקודה 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 או שווה לו, אבל נראה שהוא מוגדר עם ערך שגוי.
- בודקים את הערכים שמוגדרים למאפיינים
proxy_buffer_size ו-proxy_busy_buffers_size
בקובץ
0-default.conf:proxy_buffer_size 512k; proxy_busy_buffers_size 128k;
- מעדכנים את הערך של proxy_busy_buffers_size ל-512K בקובץ
/opt/apigee/customer/application/router.properties:conf_load_balancing_load.balancing.driver.proxy.busy.buffer.size=512k
- מסירים את התיקייה
/opt/nginx/conf.d:rm -rf /opt/nginx/conf.d
- מפעילים מחדש את הנתב:
/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. אם היא לא מקושרת, צריך לפעול לפי ההוראות הבאות:
- עוצרים את הרכיב edge-router.
- מגבים את רכיב הנתב של Edge.
- מריצים את הפקודה הבאה כדי לשדרג ל-apigee-nginx 1.2.x:
- מחיקת כל הקבצים
*.badבתיקייה/opt/apigee/nginx/conf.d. - מפעילים מחדש את רכיב הנתב של קצה הרשת.
sudo yum update apigee-nginx