شما در حال مشاهده اسناد 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 تنظیم شده است یا خیر.
- در دستگاه Message Processor، ویژگی
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.propertiestrueشکل زیر نشان دهد:/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.propertiestrueشکل زیر نشان دهد:/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 تماس بگیرید.