درحال مشاهده اسناد Apigee Edge هستید.
به
اسناد Apigee X بروید. اطلاعات
در ارتباط کارخواه-سرور، اگر
روش درخواست HTTP ارائهشده توسط کارخواه برای سرور شناختهشده باشد
اما توسط منبع هدف پشتیبانی نشود، سرور با کد وضعیت HTTP 405
Method Not Allowed پاسخ میدهد. بههمین ترتیب در Apigee Edge، سرور زیرینه میتواند
با کد وضعیت HTTP 405 Method Not Allowed. پاسخ دهد
Apigee Edge انتظار دارد که سرور پشتیبان پاسخهای 405 Method Not Allowed را
همراه با فهرست روشهای مجاز در سرایند Allow، طبق مشخصات
RFC 7231، بخش ۶.۵.۵: ۴۰۵ روش مجاز نیست ارسال کند.
سرصفحه 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 Bad Gateway - Response 405 without Allow header (دروازه بد - پاسخ 405 بدون سرایند Allow) استفاده کنید.
بااینحال، در برخی موارد استثنایی، ممکن است امکان رفع مشکل زیرینه یا اصلاح «پراکسی 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 برگردانید.
قبلاز شروع
قبلاز استفاده از مراحل این سند، مطمئن شوید که موضوعات زیر را درک میکنید:
- «کتابچه راهنما» را بخوانید - ۵۰۲ دروازه نادرست - پاسخ ۴۰۵ بدون سرصفحه «اجازه دادن».
- اگر با پیکربندی داراییها برای Edge در «ابر خصوصی» آشنا نیستید، نحوه پیکربندی Edge را بخوانید.
درحال پیکربندی سرایند نادیده گرفتن اجازه برای دارایی ۴۰۵ روی «پردازشگرهای پیام» روی درست
در Apigee Edge، خصوصیت HTTP.ignore.allow_header.for.405 بهطور پیشفرض روی
false تنظیم شده است. این کار به Apigee Edge امکان میدهد درصورتیکه سرور پشتیبان کد وضعیت HTTP 405 Method Not
Allowed را بدون سرایند Allow ارسال کند، 502 Bad
Gateway را با کد خطای protocol.http.Response405WithoutAllowHeader به
برنامههای کارخواه برگرداند. اگر میخواهید از ارسال 502 Bad Gateway به برنامههای مشتری توسط Apigee Edge جلوگیری کنید، باید مقدار دارایی 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
- اگر بیشاز یک «پردازشگر پیام» دارید، مراحل بالا را در همه «پردازشگرهای پیام» تکرار کنید.
درحال تأیید کردن اینکه سرصفحه نادیده گرفتن اجازه برای دارایی ۴۰۵ روی «درست» در «پردازشگرهای پیام» تنظیم شده است
این بخش توضیح میدهد چگونه تأیید کنید که دارایی
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میبینید، درستیسنجی کنید که همه مراحل مشخصشده در پیکربندی سرصفحه نادیده گرفتن اجازه برای دارایی ۴۰۵ روی درست در «پردازشگرهای پیام» را بهدرستی دنبال کرده باشید. اگر مرحلهای را ازدست دادهاید، همه مراحل را دوباره بهدرستی تکرار کنید. - اگر همچنان نمیتوانید دارایی را اصلاح کنید
HTTP.ignore.allow_header.for.405، با پشتیبانی Apigee Edge تماس بگیرید.
پیکربندی سرایند نادیده گرفتن اجازه برای دارایی ۴۰۵ روی «پردازشگرهای پیام» روی نادرست تنظیم شد
این بخش توضیح میدهد که چگونه دارایی
HTTP.ignore.allow_header.for.405 را بااستفاده از نشانک طبق دستور زبان شرحدادهشده در
نحوه پیکربندی Edge، در «پردازشگر پیام» روی مقدار پیشفرض آن false
پیکربندی کنید.
- بررسی کنید آیا دارایی
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
- اگر بیشاز یک «پردازشگر پیام» دارید، مراحل بالا را در همه «پردازشگرهای پیام» تکرار کنید.
درحال تأیید اینکه سرایند نادیده گرفتن اجازه برای دارایی ۴۰۵ روی «پردازشگرهای پیام» روی «نادرست» تنظیم شده است
این بخش توضیح میدهد چگونه تأیید کنید که دارایی
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میبینید، بررسی کنید که همه مراحل ذکرشده در پیکربندی سرصفحه نادیده گرفتن اجازه برای دارایی ۴۰۵ روی «پردازشگرهای پیام» روی نادرست را بهدرستی دنبال کرده باشید. اگر مرحلهای را ازدست دادهاید، همه مراحل را دوباره بهدرستی تکرار کنید. - اگر همچنان نمیتوانید دارایی را اصلاح کنید
HTTP.ignore.allow_header.for.405، با پشتیبانی Apigee Edge تماس بگیرید.