הגדרת כותרת התעלמות מההתעלמות עבור נכס 405 במעבדי הודעות

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

בתקשורת שרת-לקוח, השרת מגיב עם קוד הסטטוס 405 Method Not Allowed של HTTP אם ה-method של בקשת ה-HTTP המוצג על ידי הלקוח ידוע לשרת, אבל לא נתמך על ידי משאב היעד. באופן דומה ב-Apigee Edge, שרת הקצה העורפי יכול להגיב באמצעות קוד מצב ה-HTTP 405 Method Not Allowed.

Apigee Edge מצפה משרת הקצה העורפי לשלוח תגובות מסוג 405 Method Not Allowed עם רשימת השיטות המותרות בכותרת Allow, בהתאם למפרט RFC 7231, סעיף 6.5.5: 405 Method Not Allowed.

צריך לשלוח את הכותרת Allow בפורמט הבא:

Allow: HTTP_METHODS

לדוגמה, אם שרת הקצה העורפי מאפשר שיטות GET, POST ו-HEAD, צריך לוודא שהכותרת Allow מכילה אותן באופן הבא:

Allow: GET, POST, HEAD

אם שרת הקצה העורפי לא שולח את הכותרת Allow עם קוד סטטוס ה-HTTP 405 Method Not Allowed,, אפליקציית Apigee מחזירה לאפליקציית הלקוח את קוד סטטוס ה-HTTP 502 Bad Gateway עם קוד שגיאה protocol.http.Response405WithoutAllowHeader . הפתרון המומלץ לטיפול בשגיאה הזו הוא לתקן את שרת הקצה העורפי כך שיעמוד במפרט RFC 7231, סעיף 6.5.5: 405 Method Not Allowed, או להשתמש בטיפול בתקלה כדי להגיב עם קוד סטטוס HTTP 405 Method Not Allowed כולל הכותרת Allow כמו שמוסבר במדריך לפתרון בעיות 502 שער שגוי ללא כותרת תגובה 405.

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

במקרים כאלה, אפשר להגדיר באופן זמני את כותרת ההרשאה להתעלמות בשביל הנכס 405 HTTP.ignore.allow_header.for.405 ברמת מעבד המידע. הגדרת המאפיין הזה ל-true מונעת מ-Apigee להחזיר את התגובה 502 Bad Gateway לאפליקציות לקוח, גם אם השרת העורפי שולח קוד סטטוס HTTP 405 Method Not Allowed ללא הכותרת Allow.

בשלב שבו צריך לתקן את שרת הקצה העורפי לשליחת קוד סטטוס HTTP 405 Method Not Allowed עם הכותרת Allow, אפשר להחזיר את המאפיין HTTP.ignore.allow_header.for.405 לערך ברירת המחדל false.

לפני שמתחילים

לפני שמבצעים את השלבים במסמך הזה, חשוב להבין את הנושאים הבאים:

הגדרת התכונה 'התעלמות מהכותרת' עבור נכס 405 כ-true במעבדי הודעות

ב-Apigee Edge, המאפיין HTTP.ignore.allow_header.for.405 מוגדר בתור false, כברירת מחדל. ההגדרה הזו מאפשרת ל-Apigee Edge להחזיר את 502 Bad Gateway עם קוד השגיאה protocol.http.Response405WithoutAllowHeader לאפליקציות הלקוח אם שרת הקצה העורפי שולח קוד סטטוס HTTP 405 Method Not Allowed ללא הכותרת Allow. כדי למנוע מ-Apigee Edge לשלוח את 502 Bad Gateway לאפליקציות של לקוחות, צריך להגדיר את הערך של המאפיין HTTP.ignore.allow_header.for.405 כ-true במעבדי הודעות.

בקטע הזה מוסבר איך מגדירים את המאפיין HTTP.ignore.allow_header.for.405 ל-true במעבדי הודעות, באמצעות האסימון בהתאם לתחביר שמתואר בקטע איך מגדירים את Edge.

  1. במחשב של מעבד ההודעות, פותחים את הקובץ הבא בעורך. אם אין קטגוריה קיימת, יוצרים אותה.

    /opt/apigee/customer/application/message-processor.properties
    

    לדוגמה, כדי לפתוח את הקובץ עם vi, מזינים:

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. מוסיפים שורה בפורמט הבא לקובץ המאפיינים:
    conf_http_HTTP.ignore.allow_header.for.405=true
    
  3. שומרים את השינויים.
  4. מוודאים שקובץ המאפיינים נמצא בבעלות המשתמש של apigee, כפי שמוצג כאן:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. מפעילים מחדש את מעבד ההודעות לפי ההוראות הבאות:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. אם יש לכם יותר ממעבד הודעות אחד, צריך לחזור על השלבים שלמעלה בכל מעבדי ההודעות.

אימות ההתעלמות מהכותרת של נכס 405 מוגדר כ-True במעבדי הודעות

בקטע הזה מוסבר איך לוודא שהמאפיין HTTP.ignore.allow_header.for.405 עודכן בהצלחה ל-true במעבדי ההודעות.

למרות שמשתמשים באסימון conf_http_HTTP.ignore.allow_header.for.405 כדי לעדכן את הערך של המאפיין במעבד ההודעות, צריך לבדוק אם המאפיין HTTP.ignore.allow_header.for.405 בפועל הוגדר כ-true.

  1. במחשב, מחפשים את המאפיין HTTP.ignore.allow_header.for.405 בספרייה /opt/apigee/edge-message-processor/conf ובודקים אם הוא הוגדר ל-true כפי שמוצג בהמשך:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. אם הנכס עודכן בהצלחה במעבד ההודעות, הפקודה שלמעלה אמורה להציג את ערך המאפיין HTTP.ignore.allow_header.for.405 כ-true בקובץ http.properties כפי שמוצג בהמשך:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
    
  3. אם הערך של המאפיין HTTP.ignore.allow_header.for.405 הוא false עדיין מופיע, צריך לוודא שביצעתם את כל השלבים שמפורטים בקטע הגדרת הערך של כותרת המשנה להתעלמות עבור נכס 405 כ-TRUE במעבדי הודעות. אם החמצת שלב כלשהו, חזור על כל השלבים שוב בצורה נכונה.
  4. אם עדיין אין לך אפשרות לשנות את המאפיין HTTP.ignore.allow_header.for.405, עליך לפנות לתמיכה של Apigee Edge.

הגדרת האפשרות 'התעלמות מהכותרת' עבור נכס 405 כ-FALSE במעבדי הודעות

בקטע הזה מוסבר איך מגדירים את המאפיין HTTP.ignore.allow_header.for.405 לערך ברירת המחדל false במעבד ההודעות, תוך שימוש באסימון לפי התחביר שמתואר במאמר איך מגדירים את Edge.

  1. צריך לוודא שהנכס HTTP.ignore.allow_header.for.405 השתנה ל- true. כדי לעשות את זה, אפשר לחפש את הנכס הזה בספרייה /opt/apigee/edge-message-processor/conf ולבדוק את הערך שלו באמצעות הפקודה הבאה:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. אם המאפיין מוגדר ל-true במעבד ההודעות, הפקודה שלמעלה אמורה להציג את ערך המאפיין HTTP.ignore.allow_header.for.405 כ-true בקובץ http.properties כפי שמוצג בהמשך:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
    
  3. אם הפקודה מראה שהמאפיין HTTP.ignore.allow_header.for.405 מוגדר לערך false (ערך ברירת המחדל), אין צורך לבצע פעולה נוספת. כלומר, יש לדלג על השלבים הבאים.
  4. אם המאפיין HTTP.ignore.allow_header.for.405 מוגדר ל-true, יש לבצע את השלבים הבאים כדי לחזור לערך ברירת המחדל false.
  5. במחשב של מעבד ההודעות, פותחים את הקובץ הבא בעורך:

    /opt/apigee/customer/application/message-processor.properties
    

    לדוגמה, כדי לפתוח את הקובץ עם vi, מזינים:

    vi /opt/apigee/customer/application/message-processor.properties
    
  6. מסירים את השורה הבאה מקובץ המאפיינים:
    conf_http_HTTP.ignore.allow_header.for.405=true
    
  7. שומרים את השינויים.
  8. מוודאים שקובץ המאפיינים נמצא בבעלות המשתמש של apigee, כפי שמוצג כאן:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  9. מפעילים מחדש את מעבד ההודעות לפי ההוראות הבאות:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  10. אם יש לכם יותר ממעבד הודעות אחד, צריך לחזור על השלבים שלמעלה בכל מעבדי ההודעות.

אימות של כותרת ההרשאה להתעלמות עבור נכס 405 מוגדר כ-False במעבדי הודעות

בקטע הזה מוסבר איך לוודא שהמאפיין HTTP.ignore.allow_header.for.405 עודכן בהצלחה ל-false במעבדי ההודעות.

למרות שמשתמשים באסימון conf_http_HTTP.ignore.allow_header.for.405 כדי לעדכן את הערך במעבד ההודעות, עדיין צריך לבדוק אם המאפיין HTTP.ignore.allow_header.for.405 הוגדר בפועל כ-false.

  1. במחשב, מחפשים את המאפיין HTTP.ignore.allow_header.for.405 בספרייה /opt/apigee/edge-message- processor/conf ובודקים אם הוא הוגדר לערך false כפי שמוצג כאן:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. אם הנכס עודכן בהצלחה במעבד ההודעות, הפקודה שלמעלה אמורה להציג את ערך המאפיין HTTP.ignore.allow_header.for.405 כ-false בקובץ http.properties כפי שמוצג בהמשך:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
    
  3. אם הערך של המאפיין HTTP.ignore.allow_header.for.405 עדיין מופיע בתור true, צריך לוודא שביצעתם את כל השלבים שמפורטים בקטע הגדרת הערך של המאפיין 'התעלמות' במאפיין 405 כ-FALSE במעבדי הודעות בצורה נכונה. אם החמצתם שלב כלשהו, יש לחזור על כל השלבים בצורה נכונה.
  4. אם עדיין אין לך אפשרות לשנות את המאפיין HTTP.ignore.allow_header.for.405, עליך לפנות לתמיכה של Apigee Edge.