כרגע מוצג התיעוד של 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
.
לפני שמתחילים
לפני שמבצעים את השלבים במסמך הזה, חשוב להבין את הנושאים הבאים:
- קריאת המדריך - 502 Bad Gateway – תגובה 405 ללא כותרת הרשאה.
- אם אתם לא יודעים איך להגדיר מאפיינים ל-Edge ב-Private Cloud, קראו את ההוראות להגדרת Edge.
הגדרת התכונה 'התעלמות מהכותרת' עבור נכס 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.
-
במחשב של מעבד ההודעות, פותחים את הקובץ הבא בעורך. אם אין קטגוריה קיימת, יוצרים אותה.
/opt/apigee/customer/application/message-processor.properties
לדוגמה, כדי לפתוח את הקובץ עם vi, מזינים:
vi /opt/apigee/customer/application/message-processor.properties
- מוסיפים שורה בפורמט הבא לקובץ המאפיינים:
conf_http_HTTP.ignore.allow_header.for.405=true
- שומרים את השינויים.
- מוודאים שקובץ המאפיינים נמצא בבעלות המשתמש של
apigee
, כפי שמוצג כאן:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- מפעילים מחדש את מעבד ההודעות לפי ההוראות הבאות:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- אם יש לכם יותר ממעבד הודעות אחד, צריך לחזור על השלבים שלמעלה בכל מעבדי ההודעות.
אימות ההתעלמות מהכותרת של נכס 405 מוגדר כ-True במעבדי הודעות
בקטע הזה מוסבר איך לוודא שהמאפיין
HTTP.ignore.allow_header.for.405
עודכן בהצלחה ל-true
במעבדי ההודעות.
למרות שמשתמשים באסימון conf_http_HTTP.ignore.allow_header.for.405
כדי לעדכן
את הערך של המאפיין במעבד ההודעות, צריך לבדוק אם המאפיין HTTP.ignore.allow_header.for.405
בפועל הוגדר כ-true
.
- במחשב, מחפשים את המאפיין
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
- אם הנכס עודכן בהצלחה במעבד ההודעות, הפקודה שלמעלה אמורה להציג את ערך המאפיין
HTTP.ignore.allow_header.for.405
כ-true
בקובץhttp.properties
כפי שמוצג בהמשך:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- אם הערך של המאפיין
HTTP.ignore.allow_header.for.405
הואfalse
עדיין מופיע, צריך לוודא שביצעתם את כל השלבים שמפורטים בקטע הגדרת הערך של כותרת המשנה להתעלמות עבור נכס 405 כ-TRUE במעבדי הודעות. אם החמצת שלב כלשהו, חזור על כל השלבים שוב בצורה נכונה. - אם עדיין אין לך אפשרות לשנות את המאפיין
HTTP.ignore.allow_header.for.405
, עליך לפנות לתמיכה של Apigee Edge.
הגדרת האפשרות 'התעלמות מהכותרת' עבור נכס 405 כ-FALSE במעבדי הודעות
בקטע הזה מוסבר איך מגדירים את המאפיין HTTP.ignore.allow_header.for.405
לערך ברירת המחדל false
במעבד ההודעות, תוך שימוש באסימון לפי התחביר שמתואר במאמר איך מגדירים את Edge.
- צריך לוודא שהנכס
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
- אם המאפיין מוגדר ל-
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
- אם הפקודה מראה שהמאפיין
HTTP.ignore.allow_header.for.405
מוגדר לערךfalse
(ערך ברירת המחדל), אין צורך לבצע פעולה נוספת. כלומר, יש לדלג על השלבים הבאים. - אם המאפיין
HTTP.ignore.allow_header.for.405
מוגדר ל-true
, יש לבצע את השלבים הבאים כדי לחזור לערך ברירת המחדלfalse
. במחשב של מעבד ההודעות, פותחים את הקובץ הבא בעורך:
/opt/apigee/customer/application/message-processor.properties
לדוגמה, כדי לפתוח את הקובץ עם vi, מזינים:
vi /opt/apigee/customer/application/message-processor.properties
- מסירים את השורה הבאה מקובץ המאפיינים:
conf_http_HTTP.ignore.allow_header.for.405=true
- שומרים את השינויים.
- מוודאים שקובץ המאפיינים נמצא בבעלות המשתמש של
apigee
, כפי שמוצג כאן:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- מפעילים מחדש את מעבד ההודעות לפי ההוראות הבאות:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- אם יש לכם יותר ממעבד הודעות אחד, צריך לחזור על השלבים שלמעלה בכל מעבדי ההודעות.
אימות של כותרת ההרשאה להתעלמות עבור נכס 405 מוגדר כ-False במעבדי הודעות
בקטע הזה מוסבר איך לוודא שהמאפיין
HTTP.ignore.allow_header.for.405
עודכן בהצלחה ל-false
במעבדי ההודעות.
למרות שמשתמשים באסימון conf_http_HTTP.ignore.allow_header.for.405
כדי לעדכן את הערך
במעבד ההודעות, עדיין צריך לבדוק אם המאפיין HTTP.ignore.allow_header.for.405
הוגדר בפועל כ-false
.
- במחשב, מחפשים את המאפיין
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
- אם הנכס עודכן בהצלחה במעבד ההודעות, הפקודה שלמעלה אמורה להציג את ערך המאפיין
HTTP.ignore.allow_header.for.405
כ-false
בקובץhttp.properties
כפי שמוצג בהמשך:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
- אם הערך של המאפיין
HTTP.ignore.allow_header.for.405
עדיין מופיע בתורtrue
, צריך לוודא שביצעתם את כל השלבים שמפורטים בקטע הגדרת הערך של המאפיין 'התעלמות' במאפיין 405 כ-FALSE במעבדי הודעות בצורה נכונה. אם החמצתם שלב כלשהו, יש לחזור על כל השלבים בצורה נכונה. - אם עדיין אין לך אפשרות לשנות את המאפיין
HTTP.ignore.allow_header.for.405
, עליך לפנות לתמיכה של Apigee Edge.