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

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

תיאור הבעיה

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

הודעות שגיאה

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

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

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

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

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

עם זאת, בסביבת פיתוח או בדיקה פנימית, אפשר לשנות את ברירת המחדל כדי לאפשר למפתחי ה-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 החזירה שגיאת HTTP.

רזולוציה

כדי לאפשר לממשק המשתמש של 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 מקומיות.