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

شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید .
اطلاعات

در ارتباط کلاینت-سرور، اگر روش درخواست HTTP ارائه شده توسط کلاینت برای سرور شناخته شده باشد اما توسط منبع هدف پشتیبانی نشود، سرور با کد وضعیت HTTP 405 Method Not Allowed پاسخ می‌دهد. به طور مشابه در Apigee Edge، سرور backend می‌تواند با کد وضعیت HTTP 405 Method Not Allowed.

Apigee Edge انتظار دارد که سرور backend، پاسخ‌های خطای 405 Method Not Allowed را به همراه فهرستی از متدهای مجاز در سرآیند Allow ، مطابق با مشخصات RFC 7231، بخش ۶.۵.۵: ۴۰۵ Method Not Allowed، ارسال کند.

هدر Allow باید با فرمت زیر ارسال شود:

Allow: HTTP_METHODS

برای مثال، اگر سرور backend شما متدهای GET ، POST و HEAD را مجاز می‌داند، باید مطمئن شوید که سرآیند Allow شامل آنها به شرح زیر باشد:

Allow: GET, POST, HEAD

اگر سرور backend هدر Allow را با کد وضعیت HTTP 405 Method Not Allowed, Apigee کد وضعیت HTTP 502 Bad Gateway را با کد خطای protocol.http.Response405WithoutAllowHeader به برنامه کلاینت برمی‌گرداند. راه حل پیشنهادی برای رفع این خطا، اصلاح سرور backend برای رعایت مشخصات RFC 7231، بخش 6.5.5: 405 Method Not Allowed یا استفاده از مدیریت خطا برای پاسخ دادن با کد وضعیت 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 ارسال کند.

زمانی که توانستید سرور backend خود را طوری تنظیم کنید که کد وضعیت HTTP 405 Method Not Allowed را با هدر Allow ارسال کند، می‌توانید ویژگی HTTP.ignore.allow_header.for.405 به مقدار پیش‌فرض false برگردانید.

قبل از اینکه شروع کنی

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

پیکربندی هدر ignore allow برای ویژگی ۴۰۵ به مقدار true در پردازنده‌های پیام

در Apigee Edge، ویژگی HTTP.ignore.allow_header.for.405 به طور پیش‌فرض روی false تنظیم شده است. این امر Apigee Edge را قادر می‌سازد تا در صورت ارسال کد وضعیت HTTP 405 Method Not Allowed بدون هدر Allow توسط سرور backend، خطای 502 Bad Gateway را با کد خطای protocol.http.Response405WithoutAllowHeader به برنامه‌های کلاینت برگرداند. اگر می‌خواهید از ارسال خطای 502 Bad Gateway توسط Apigee Edge به برنامه‌های کلاینت جلوگیری کنید، باید مقدار ویژگی HTTP.ignore.allow_header.for.405 در پردازنده‌های پیام روی true تنظیم کنید.

این بخش نحوه پیکربندی ویژگی HTTP.ignore.allow_header.for.405 را روی پردازنده‌های پیام (Message Processors) با true توضیح می‌دهد، که با استفاده از توکن مطابق با سینتکس شرح داده شده در نحوه پیکربندی Edge انجام می‌شود.

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

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

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

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

تأیید اینکه هدر ignore allow برای ویژگی ۴۰۵ در Message Processors روی 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. اگر ویژگی با موفقیت در پردازنده پیام به‌روزرسانی شود، دستور بالا باید مقدار ویژگی 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 به true در Message Processors را به درستی دنبال کرده‌اید. اگر هر مرحله‌ای را از دست داده‌اید، تمام مراحل را دوباره به درستی تکرار کنید.
  4. اگر هنوز قادر به تغییر ویژگی HTTP.ignore.allow_header.for.405 نیستید، با پشتیبانی Apigee Edge تماس بگیرید.

پیکربندی سربرگ ignore allow برای ویژگی ۴۰۵ به false در پردازنده‌های پیام

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

تأیید اینکه هدر ignore allow برای ویژگی ۴۰۵ در پردازنده‌های پیام روی false تنظیم شده است

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

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

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