پیکربندی هدر نادیده گرفتن اجازه برای ویژگی 405 در پردازشگرهای پیام

شما در حال مشاهده اسناد 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 برگردانید.

قبل از شروع

قبل از استفاده از مراحل این سند، مطمئن شوید که موضوعات زیر را درک کرده اید:

پیکربندی 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 توضیح می‌دهد.

  1. در دستگاه Message Processor، فایل زیر را در یک ویرایشگر باز کنید. اگر از قبل وجود ندارد، آن را ایجاد کنید.

    /opt/apigee/customer/application/message-processor.properties
    

    به عنوان مثال، برای باز کردن فایل با استفاده از vi ، عبارت زیر را وارد کنید:

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. یک خط با فرمت زیر به فایل خواص اضافه کنید:
    conf_http_HTTP.ignore.allow_header.for.405=true
    
  3. تغییرات خود را ذخیره کنید.
  4. همانطور که در زیر نشان داده شده است، اطمینان حاصل کنید که فایل خواص متعلق به کاربر apigee است:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. پردازشگر پیام را مانند تصویر زیر راه اندازی مجدد کنید:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. اگر بیش از یک پردازشگر پیام دارید، مراحل بالا را در همه پردازشگرهای پیام تکرار کنید.

تأیید هدر نادیده گرفتن اجازه برای ویژگی 405 در پردازشگرهای پیام روی true تنظیم شده است

این بخش نحوه تأیید اینکه ویژگی HTTP.ignore.allow_header.for.405 با موفقیت به true در پردازشگرهای پیام به روز شده است را توضیح می دهد.

حتی اگر از نشانه conf_http_HTTP.ignore.allow_header.for.405 برای به روز رسانی مقدار ویژگی در پردازشگر پیام استفاده می کنید، باید بررسی کنید که آیا ویژگی واقعی HTTP.ignore.allow_header.for.405 روی true تنظیم شده است یا خیر.

  1. در دستگاه پردازشگر پیام، ویژگی 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
    
  2. اگر ویژگی با موفقیت در 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
    
  3. اگر همچنان مقدار ویژگی HTTP.ignore.allow_header.for.405 را false می‌بینید، بررسی کنید که تمام مراحل ذکر شده در پیکربندی ignore allow header برای ویژگی 405 را به درستی در پردازشگرهای پیام به درستی دنبال کرده‌اید. اگر هر مرحله ای را از دست داده اید، تمام مراحل را دوباره به درستی تکرار کنید.
  4. اگر هنوز نمی توانید ویژگی HTTP.ignore.allow_header.for.405 را تغییر دهید، با پشتیبانی Apigee Edge تماس بگیرید.

پیکربندی ignore allow header برای ویژگی 405 در پردازشگرهای پیام نادرست است

این بخش نحوه پیکربندی خاصیت HTTP.ignore.allow_header.for.405 را به مقدار پیش‌فرض false در پردازشگر پیام، با استفاده از توکن طبق نحو توضیح داده شده در نحوه پیکربندی Edge توضیح می‌دهد.

  1. بررسی کنید که آیا ویژگی 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
    
  2. اگر ویژگی در 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
    
  3. اگر دستور بالا نشان می‌دهد که ویژگی HTTP.ignore.allow_header.for.405 روی false (مقدار پیش‌فرض) تنظیم شده است، دیگر لازم نیست کار دیگری انجام دهید. یعنی مراحل زیر را رد کنید.
  4. اگر ویژگی HTTP.ignore.allow_header.for.405 روی true تنظیم شده است، مراحل زیر را برای بازگشت به مقدار پیش‌فرض false انجام دهید.
  5. در دستگاه پردازشگر پیام، فایل زیر را در یک ویرایشگر باز کنید:

    /opt/apigee/customer/application/message-processor.properties
    

    به عنوان مثال، برای باز کردن فایل با استفاده از vi ، عبارت زیر را وارد کنید:

    vi /opt/apigee/customer/application/message-processor.properties
    
  6. خط زیر را از فایل خواص حذف کنید:
    conf_http_HTTP.ignore.allow_header.for.405=true
    
  7. تغییرات خود را ذخیره کنید.
  8. همانطور که در زیر نشان داده شده است، اطمینان حاصل کنید که فایل خواص متعلق به کاربر apigee است:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  9. پردازشگر پیام را مانند تصویر زیر راه اندازی مجدد کنید:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  10. اگر بیش از یک پردازشگر پیام دارید، مراحل بالا را در همه پردازشگرهای پیام تکرار کنید.

تأیید نادیده گرفتن هدر اجازه برای ویژگی 405 در پردازشگرهای پیام روی false تنظیم شده است

این بخش نحوه تأیید اینکه ویژگی HTTP.ignore.allow_header.for.405 با موفقیت به false در پردازشگرهای پیام به روز شده است را توضیح می دهد.

حتی اگر از رمز conf_http_HTTP.ignore.allow_header.for.405 برای به روز رسانی مقدار در پردازشگر پیام استفاده می کنید، باید بررسی کنید که آیا ویژگی واقعی HTTP.ignore.allow_header.for.405 روی false تنظیم شده است یا خیر.

  1. در دستگاه 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
    
  2. اگر ویژگی با موفقیت در 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
    
  3. اگر همچنان مقدار ویژگی HTTP.ignore.allow_header.for.405 را true می‌بینید، سپس بررسی کنید که تمام مراحل ذکر شده در پیکربندی نادیده گرفتن اجازه سرصفحه برای ویژگی 405 را به درستی در پردازشگرهای پیام دنبال کرده‌اید. اگر هر مرحله ای را از دست داده اید، تمام مراحل را دوباره به درستی تکرار کنید.
  4. اگر هنوز نمی توانید ویژگی HTTP.ignore.allow_header.for.405 را تغییر دهید، با پشتیبانی Apigee Edge تماس بگیرید.