מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
בתקשורת בין שרת לקוח, שרת מגיב עם קוד סטטוס HTTP 405
Method Not Allowed
,
ה-method של בקשת ה-HTTP המוצגת על ידי הלקוח ידועה לשרת
אבל הוא לא נתמך על ידי משאב היעד. באופן דומה ב-Apigee Edge, שרת הקצה העורפי יכול
להשיב עם קוד הסטטוס 405 Method Not Allowed.
של HTTP.
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 מחזירה את קוד הסטטוס 502 Bad
Gateway
של HTTP עם קוד השגיאה protocol.http.Response405WithoutAllowHeader
לאפליקציית לקוח. הפתרון המומלץ לטיפול בשגיאה הזו הוא
כדי לתקן את שרת הקצה העורפי כדי לפעול בהתאם למפרט
RFC 7231, סעיף 6.5.5: 405 Method Not Allowed או להשתמש בטיפול בתקלה כדי
להשיב עם קוד המצב של HTTP 405 Method Not Allowed
, כולל
כותרת Allow
, כמו שמוסבר במדריך לפתרון בעיות
502 Bad Gateway - Response 405 without Allow header.
עם זאת, במקרים חריגים מסוימים, ייתכן שלא ניתן יהיה לתקן את הקצה העורפי או לשנות את שרת Proxy ל-API כדי לטפל בבעיה הזו באופן מיידי.
במקרים כאלה, אפשר להגדיר את כותרת ההרשאה להתעלמות עבור המאפיין 405
HTTP.ignore.allow_header.for.405
ב-
רמת מעבד ההודעות באופן זמני. אם המאפיין הזה מוגדר ל-true
, אי אפשר להשתמש ב-Apigee
מהחזרת התגובה 502 Bad Gateway
לאפליקציות לקוח, גם אם
שרת הקצה העורפי שולח את קוד הסטטוס 405 Method Not Allowed
של HTTP ללא
כותרת Allow
.
ברגע שמתקנים את שרת הקצה העורפי כך שישלח את קוד הסטטוס 405 Method
Not Allowed
של HTTP עם הכותרת Allow
, אפשר להחזיר את הנכס למצב הקודם
HTTP.ignore.allow_header.for.405
לערך ברירת המחדל שלו false
.
לפני שמתחילים
לפני שתשתמשו בשלבים שבמסמך הזה, חשוב שתוודאו שאתם מבינים את הנושאים הבאים:
- לקריאת ה-מדריך - 502 Bad Gateway - תגובה 405 ללא כותרת Allow.
- אם אתם לא יודעים איך להגדיר נכסים ל-Edge בענן פרטי, אפשר לקרוא את המאמר איך מגדירים את 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.