شما در حال مشاهده اسناد 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، بخش 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
کد خطا.http.Response405WithoutAllowHeader به برنامه مشتری برمی گرداند. راه حل پیشنهادی برای رفع این خطا این است که سرور پشتیبان را به منظور رعایت مشخصات RFC 7231، بخش 6.5.5: 405 روش مجاز نیست یا استفاده از مدیریت خطا برای پاسخگویی با کد وضعیت HTTP 405 Method Not Allowed
از جمله هدر Allow
استفاده کنید. همانطور که در راهنمای عیب یابی 502 Bad Gateway - Response 405 without Allow header توضیح داده شده است.
با این حال، در برخی موارد استثنایی، ممکن است نتوان باطن خود را اصلاح کرد یا پروکسی API خود را برای رفع فوری این مشکل اصلاح کرد.
در چنین مواردی، میتوانید هدر ignore allow را برای ویژگی 405
HTTP.ignore.allow_header.for.405
در سطح پردازشگر پیام به طور موقت تنظیم کنید. تنظیم این ویژگی روی true
از Apigee جلوگیری می کند تا پاسخ 502 Bad Gateway
را به برنامه های کلاینت بازگرداند حتی اگر سرور backend کد وضعیت HTTP 405 Method Not Allowed
بدون هدر Allow
ارسال کند.
هنگامی که در موقعیتی قرار گرفتید که سرور باطن خود را برای ارسال کد وضعیت HTTP 405 Method Not Allowed
با هدر Allow
تعمیر کنید، می توانید ویژگی HTTP.ignore.allow_header.for.405
را به مقدار پیش فرض آن false
برگردانید.
قبل از شروع
قبل از استفاده از مراحل این سند، مطمئن شوید که موضوعات زیر را درک کرده اید:
- Playbook - 502 Bad Gateway - answer 405 without Allow header را بخوانید.
- اگر با پیکربندی ویژگیهای Edge در Private Cloud آشنایی ندارید، نحوه پیکربندی Edge را بخوانید.
پیکربندی ignore allow header برای ویژگی 405 در پردازشگرهای پیام درست باشد
در Apigee Edge، ویژگی HTTP.ignore.allow_header.for.405
به طور پیش فرض روی false
تنظیم شده است. این Apigee Edge را قادر میسازد تا 502 Bad Gateway
با protocol.http.Response405WithoutAllowHeader
کد خطا.http.Response405WithoutAllowHeader به برنامههای سرویس گیرنده برگرداند، اگر سرور backend کد وضعیت HTTP 405 Method Not Allowed
بدون هدر Allow
ارسال کند. اگر میخواهید از ارسال 502 Bad Gateway
Apigee Edge به برنامههای کلاینت جلوگیری کنید، باید مقدار ویژگی HTTP.ignore.allow_header.for.405
را روی true
در پردازندههای پیام تنظیم کنید.
این بخش نحوه پیکربندی خاصیت HTTP.ignore.allow_header.for.405
را به true
در پردازشگرهای پیام، با استفاده از توکن طبق نحو توضیح داده شده در نحوه پیکربندی Edge توضیح میدهد.
در دستگاه Message Processor، فایل زیر را در یک ویرایشگر باز کنید. اگر از قبل وجود ندارد، آن را ایجاد کنید.
/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
- اگر ویژگی با موفقیت در Message Processor به روز شود، دستور بالا باید مقدار ویژگی
HTTP.ignore.allow_header.for.405
را در فایلhttp.properties
true
شکل زیر نشان دهد:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- اگر همچنان مقدار ویژگی
HTTP.ignore.allow_header.for.405
راfalse
میبینید، بررسی کنید که تمام مراحل ذکر شده در پیکربندی ignore allow header برای ویژگی 405 را به درستی در پردازشگرهای پیام به درستی دنبال کردهاید. اگر هر مرحله ای را از دست داده اید، تمام مراحل را دوباره به درستی تکرار کنید. - اگر هنوز نمی توانید ویژگی
HTTP.ignore.allow_header.for.405
را تغییر دهید، با پشتیبانی Apigee Edge تماس بگیرید.
پیکربندی ignore allow header برای ویژگی 405 در پردازشگرهای پیام نادرست است
این بخش نحوه پیکربندی خاصیت 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
- اگر ویژگی در Message Processor روی
true
تنظیم شده باشد، دستور بالا باید مقدار خاصیتHTTP.ignore.allow_header.for.405
را در فایلhttp.properties
true
شکل زیر نشان دهد:/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
تنظیم شده است یا خیر.
- در دستگاه Message Processor، ویژگی
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
- اگر ویژگی با موفقیت در Message Processor بهروزرسانی شود، دستور بالا باید مقدار ویژگی
HTTP.ignore.allow_header.for.405
را در فایلhttp.properties
مانند شکل زیر بهfalse
نشان دهد:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
- اگر همچنان مقدار ویژگی
HTTP.ignore.allow_header.for.405
راtrue
میبینید، سپس بررسی کنید که تمام مراحل ذکر شده در پیکربندی نادیده گرفتن اجازه سرصفحه برای ویژگی 405 را به درستی در پردازشگرهای پیام دنبال کردهاید. اگر هر مرحله ای را از دست داده اید، تمام مراحل را دوباره به درستی تکرار کنید. - اگر هنوز نمی توانید ویژگی
HTTP.ignore.allow_header.for.405
را تغییر دهید، با پشتیبانی Apigee Edge تماس بگیرید.