תגובת HTTP 304 בפעילות מעקב

מוצג המסמך של Apigee Edge.
עוברים אל מסמכי תיעוד של Apigee X.
מידע

תיאור הבעיה

כשעוקבים אחרי API בממשק המשתמש של Edge ב-Edge לענן פרטי, תגובת HTTP 304 בעמודה סטטוס שבחלון המעקב:

הודעות שגיאה

אין הודעות שגיאה – הקריאה ל-Proxy ל-API מחזירה תוצאות תגובה חדשה, כמו HTTP 200. עם זאת, חלון המעקב בממשק המשתמש של Edge תגובת HTTP 304 ולא נאספים נתוני מעקב.

גורמים אפשריים

ב-Edge לענן פרטי, ממשק המשתמש של Edge מנסה לאתר שרת proxy ל-API ניגשת אליו מכתובת IP פרטית.

כלי המעקב בממשק המשתמש של Edge יכול לשלוח בקשת API לכל כתובת URL. בתרחיש פריסה שבו ממשק המשתמש של Edge מתארח בשיתוף עם גורמים פנימיים אחרים השירותים האלה, משתמש זדוני עלול לעשות שימוש לרעה בכלי המעקב כדי להגיש בקשות באמצעות כתובת IP פרטית, כמו Localhost או 127.0.0.1.

בסביבת ייצור, בדרך כלל משאירים את ברירת המחדל כפי שהיא כדי למנוע שמשתמשים לא יוכלו לאתר כתובת IP פרטית. לדוגמה, כך הגרסה הציבורית של ממשק המשתמש של Edge נפרסה.

עם זאת, בסביבת פיתוח או בדיקה פנימית, אפשר לשנות כברירת מחדל, כדי לאפשר למפתחי ה-API לעקוב אחרי כל כתובת IP. בדרך כלל, סביבת פיתוח/בדיקה נמצאת מאחורי חומת אש שלא לאפשר גישה ציבורית.

הערה: השיטה המומלצת היא להשאיר את ברירת המחדל כפי שהיא כדי למנוע מעקב אחרי גישה לכתובות IP פרטיות, גם בסביבת פיתוח או בדיקה, אלא אם תיתקלו במצב שבו צריך להפעיל את האפשרות הזו.

הסיבה: ניסיון לגשת לשרת proxy ל-API דרך כתובת IP פרטית

כברירת מחדל, ממשק המשתמש של Edge ב-Edge לענן הפרטי מונע ממשתמשים מעקב אחרי קריאות ל-API שמתבצעות דרך כתובות IP פרטיות. הרשימה של כתובות ה-IP הפרטיות כוללת:

  • כתובת הלולאה חוזרת (127.0.0.1 או Localhost)
  • כתובות מקומיות באתר (ל-IPv4 – 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
  • כל כתובת מקומית (כל כתובת שעוברת אל Localhost)

לדוגמה, פקודת ה-curl הבאה מבצעת קריאה לשרת proxy ל-API באמצעות כתובת IP של 127.0.0.1, שנחשבת לכתובת IP פרטית:

curl http://127.0.0.1:9001/myapiproxy

בחלון המעקב של הקריאה הזו, תופיע תגובת HTTP 304 גם אם פקודת ה-curl החזירה הצלחה.

רזולוציה

כדי לאפשר לממשק המשתמש של Edge לעקוב אחרי כתובות IP פרטיות של Edge עבור בענן פרטי, צריך להגדיר את האסימון הבא ב-ui.properties:

conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"

כדי להגדיר את הנכס הזה:

  1. פותחים את הקובץ ui.properties בעורך. אם הקובץ לא קיים, צור אותו.
    vi /opt/apigee/customer/application/ui.properties
  2. יש להגדיר את המאפיינים הבאים כ-TRUE:
    conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"
  3. שומרים את השינויים שבוצעו בקובץ ui.properties.
  4. צריך לוודא שקובץ המאפיינים נמצא בבעלות ה-apigee משתמש:
    chown apigee:apigee /opt/apigee/customer/application/ui.properties
  5. מפעילים מחדש את ממשק המשתמש של Edge:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

ממשק המשתמש של Edge יכול עכשיו לגשת לכתובות IP פרטיות בכלי המעקב.

כדי להשבית במועד מאוחר יותר את המעקב אחר בקשות דרך כתובות IP פרטיות בממשק המשתמש, לערוך את ui.properties כדי להגדיר את הנכס ל-false לאחר מכן מפעילים מחדש את ממשק המשתמש של Edge.

מידע נוסף זמין במאמר מתן הרשאה לממשק המשתמש של Edge לגשת לכתובות IP מקומיות.