504 זמן קצוב לתפוגה של שער מהשרת העורפי

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

תיאור הבעיה

אפליקציית הלקוח מקבלת קוד סטטוס HTTP של 504 עם ההודעה 'זמן קצוב לתפוגה של שער' בתגובה לקריאות ל-API.

תגובת השגיאה הזו מציינת שהלקוח לא קיבל תגובה בזמן מ-Apigee Edge או משרת הקצה העורפי במהלך ביצוע קריאה ל-API.

הודעת שגיאה

אפליקציית הלקוח מקבלת את קוד התגובה הבא:

HTTP/1.1 504 Gateway Timeout

אחרי הקוד הזה עשויה להופיע הודעת שגיאה שדומה להודעה הבאה:

<html>
<head><title>504 Gateway Timeout</title></head>
<body bgcolor="white">
<center><h1>504 Gateway Timeout</h1></center>
</body>
</html>

מה גורם לזמן הקצוב לתפוגה של השער?

הנתיב הטיפוסי לבקשת API שנשלחת דרך Apigee Edge הוא Client -> נתב -> מעבד הודעות -> שרת עורפי כפי שמוצג באיור הבא:

נתיב הבקשה ל-API

אפליקציית הלקוח, הנתבים ומעבדי ההודעות מוגדרים עם ערכים מתאימים של זמן קצוב לתפוגה. Apigee Edge מצפה לקבל תשובה לכל בקשת API בפרק זמן מסוים בהתאם לערכי הזמן הקצוב לתפוגה. אם התגובה לא תתקבל במסגרת הזמן שצוינה, תוחזר תגובת הזמן הקצוב 504 של Gateway.

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

ב-Apigee Edge, הסיבה הטיפוסית לתגובת זמן קצוב לתפוגה של שער 504 משרת הקצה העורפי היא:

הסיבה תיאור הוראות לפתרון בעיות עבור
תגובה של שרת הקצה העורפי עם זמן קצוב לתפוגה של שער 504 למעבד ההודעות יש זמן קצוב לתפוגה של שרת הקצה העורפי ומחזיר למעבד ההודעות תגובה 504 'זמן קצוב לתפוגה של שער'. משתמשי Edge בענן פרטי וציבורי

תגובה של שרת קצה עורפי עם זמן קצוב לתפוגה של שער 504

שרת הקצה העורפי עשוי להגיב עם קוד תגובת HTTP של הזמן הקצוב לתפוגה 504 Gateway.

אבחון

הקטע הזה מסביר איך לאבחן כראוי זמן קצוב לתפוגה 504 של Gateway. פרוצדורות של חשבונות פרטיים וגם רשומים משתמשי Cloud הציבורי.

הליך מס' 1: שימוש ב-Trace (למשתמשים בענן פרטי ובענן ציבורי)

  1. מפעילים את Trace בממשק המשתמש של Apigee ל-API המושפע.
  2. לשלוח בקשה לשרת הקצה העורפי.
  3. אם בבקשת ה-API שנכשלה מוצגת תגובת 504 משרת הקצה העורפי ב-Trace, אז הסיבה לזמן הקצוב 504 של Gateway הוא שרת הקצה העורפי.
  4. כדי לקבוע את זמן התגובה, לוחצים על התגובה התקבלה משרת היעד ב-Trace. בדוגמה שמוצגת, הזמן שחלף הוא 60,004 אלפיות השנייה:

    פרטי השלב מממשק המשתמש

    הקטע 'פרטי שלב' מספק מידע נוסף:

    • היא מדגישה את התגובה הזמן הקצוב 504 Gateway שהתקבל משרת הקצה העורפי.
    • בקטע תוכן התגובה מוצג גוף התשובה המלא של שרת עורפי. כפי שצוין קודם, הפורמט והתוכן של המטען הייעודי (payload) של התגובה עשויים להיות שונים. בהתאם להטמעת שרת הקצה העורפי.
    • כותרת התגובה > הקטע 'שרת' עשוי לציין את מקור התגובה.
  5. כדי לראות את נתוני Analytics ולאשר את האבחון, לוחצים על Analytics Data Record (נתוני Analytics שתועדו) בשלב Trace, כפי שמוצג באיור הבא:

    פרטי ניתוח נתונים ממעקב

    בקטע כותרות תגובה בפרטי השלב מוצגים הערכים של X-Apigee-fault-code ו-X-Apigee-fault-source, כפי שמוצג איור למטה:

    פרטי השלב של ניתוח הנתונים מממשק המשתמש

    אם השדות האלה מכילים את הערכים שמופיעים בטבלה שלמטה, המקור של תגובת השגיאה 504 משרת הקצה העורפי:

    כותרות של תגובות ערך
    X-Apigee-fault-source יעד
    X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode
  6. חיפוש שרשור של שרת proxy. כדי לבדוק אם שרת הקצה העורפי מפעיל שרת proxy אחר, צריך לבצע את השלבים הבאים ב-Apigee:
    1. חוזרים לשלב הבקשה נשלחה לשרת היעד ולוחצים על הלחצן הצגת Curl כדי להציג את הכינוי של המארח של שרת הקצה העורפי.
    2. אם הכינוי של שרת הקצה העורפי מפנה לכינוי של מארח וירטואלי, אז שרשורת שרת ה-proxy מופעלת במקום. חוזרים על השלבים שלמעלה עבור כל שרת proxy בשרשרת כדי לאבחן את הסיבה לשער 504 תגובת שגיאה של הזמן הקצוב לתפוגה. 504 זמנים קצובים לתפוגה של שער המתרחשים בשרתי proxy משורשרים בשלבים אחרים של ניתן לאבחן את מחזור הבקשה/התגובה באמצעות את המדריך הזה.
    3. אם הכינוי של מארח הקצה העורפי מפנה לשרת הקצה העורפי, ממשיכים אל רזולוציה.

הליך מס' 2: הפעלה ישירה של ממשק ה-API של שרת הקצה העורפי (משתמשי ענן ציבורי ופרטי)

התקשרות ישירות לשרת הקצה העורפי כדי לאשר שזוהתה אותה התנהגות בתגובה לזמן קצוב לתפוגה של שער 504 כשהבקשה מתבצעת דרך Apigee Edge.

  1. חשוב לוודא שיש לכם את כל הכותרות, הפרמטרים של השאילתות ופרטי הכניסה הנדרשים כדי לעבור לשרת העורפי כחלק מהבקשה.
  2. אם השירות לקצה העורפי נגיש לציבור, אפשר להשתמש בפקודה curl, Postman או כל לקוח REST אחר, והפעלה ישירה של ה-API של השרת העורפי.
  3. אם אפשר לגשת לשרת הקצה העורפי רק ממעבדי ההודעות, צריך להשתמש בcurl פקודה אחרת, Postman או כל לקוח REST אחר להפעיל את ה-API של שרת הקצה העורפי ישירות מעבד הודעות.
  4. אם שירות הקצה העורפי מחזיר תגובה מסוג '504 הזמן הקצוב לתפוגה של השער', ממשיכים אל רזולוציה.

הליך מס' 3: בדיקה של יומני הגישה ל-NGINX (למשתמשי ענן פרטי בלבד)

יומני הגישה ל-NGINX יכולים לעזור לקבוע אם התגובה לשגיאה 504 נשלחה על ידי השרת העורפי. האפשרות הזו שימושית במיוחד אם הבעיה התרחשה בעבר, היא מתרחשת לסירוגין או שלא ניתן לתעד אותה ב-Trace. כדי לבדוק את יומני הגישה ל-NGINX:

  1. אפשר לצפות ביומני הגישה ל-NGINX באמצעות הפקודה הבאה:
    /opt/apigee/var/log/edge-router/nginx/ ORG ~ENV.PORT# _access_log 
  2. בודקים אם יש תגובות לשגיאה 504 עבור שרת ה-proxy ל-API שהושפע. אפשר לבדוק פרק זמן ספציפי, אם הבעיה התרחשה בעבר, או לקבוע אם הבקשות עדיין נכשלות עם תגובת שגיאה 504.
  3. אם יש תגובות שגיאה 504, בודקים אם המקור של תגובת השגיאה הוא שרת עורפי.
  4. האיור הבא הוא דוגמה לרשומה ביומן NGINX שמציגה תגובת שגיאה 504 הנגרמת על ידי שרת יעד:

    יומני nginx לדוגמה

    אם השדות X-Apigee-fault-source ו-X-Apigee-fault-code מכילים את שמוצגים בטבלה הבאה, התשובה 504 מגיעה משרת הקצה העורפי:

    כותרות של תגובות ערך
    X-Apigee-fault-source יעד
    X-Apigee-fault-code messaging.adaptors.http.flow.ErrorResponseCode
  5. בודקים את שרת ה-proxy ל-API המושפע כדי לבדוק אם יש שרשרת לשרת proxy כלומר, שרת הקצה העורפי או נקודת הקצה היעד מפעילים שרת proxy אחר ב-Apigee. אם ה-Proxy ל-API באמצעות שרשראות שרת proxy , צריך לחזור על השלבים שלמעלה לכל שרת proxy בשרשרת כדי לאבחן את הסיבה לזמן הקצוב לתפוגה של השער 504 עם שגיאה. ניתן לאבחן 504 זמנים קצובים לתפוגה של שער שמתרחשים בשרתי proxy משורשרים בשלבים אחרים באמצעות המדריך הזה.
  6. אם אין שרשרת שרת proxy, ותגובת השגיאה 504 מגיעה משרת הקצה העורפי, ממשיכים אל פתרון.

הליך מס' 4: שימוש ב-API Monitoring (משתמשי ענן ציבורי בלבד)

מעקב API מאפשר לבודד בעיות כדי לאבחן במהירות בעיות של שגיאות, ביצועים וזמן אחזור ואת המקור שלהן, למשל אפליקציות למפתחים, שרתי proxy ל-API, יעדים לקצה העורפי או פלטפורמת ה-API.

תרחיש לדוגמה שמדגים איך לפתור בעיות מסוג 5xx עם ממשקי ה-API שלכם באמצעות API Monitoring. לדוגמה, להגדיר התראה למנהל המערכת כאשר מספר קודי המצב 504 חורג מסף מסוים.

רזולוציה

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

איסוף פרטי האבחון

אם הבעיה נמשכת, כדאי לשתף את פרטי האבחון הבאים עם התמיכה של Apigee.

אם אתם משתמשים בענן ציבורי, עליכם לספק את הפרטים הבאים:

  • שם הארגון
  • שם הסביבה
  • שם ה-API של ה-Proxy
  • צריך למלא את הפקודה curl שמשמשת לשחזור תגובת השגיאה 504
  • קובץ מעקב עם בקשות API שמקבלות תגובה מסוג שגיאה מסוג 504 Gateway \'זמן קצוב לתפוגה

אם אתם משתמשים בענן פרטי, עליכם לספק את הפרטים הבאים:

  • הודעת שגיאה מלאה שנצפתה בבקשות שנכשלו
  • שם הסביבה
  • חבילת API Proxy
  • קובץ מעקב עם בקשות API שמקבלות את תגובת השגיאה הזמן הקצוב לתפוגה של שער 504
  • יומני גישה ל-NGINX
    /opt/apigee/var/log/edge-router/nginx/ ORG ~ENV.PORT# _access_log 
  • יומני מעבד ההודעות
    /opt/apigee/var/log/edge-message-processor/logs/system.log