درحال پیکربندی سرایند مجاز نادیده گرفتن برای دارایی ۴۰۵ در «پردازشگرهای پیام»

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

قبل‌از شروع

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

درحال پیکربندی سرایند نادیده گرفتن اجازه برای دارایی ۴۰۵ روی «پردازشگرهای پیام» روی درست

در 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 استفاده کنید.

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

    /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. اگر بیش‌از یک «پردازشگر پیام» دارید، مراحل بالا را در همه «پردازشگرهای پیام» تکرار کنید.

درحال تأیید کردن اینکه سرصفحه نادیده گرفتن اجازه برای دارایی ۴۰۵ روی «درست» در «پردازشگرهای پیام» تنظیم شده است

این بخش توضیح می‌دهد چگونه تأیید کنید که دارایی 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 را به‌صورت true در فایل http.properties نشان دهد، همان‌طور که در زیر نشان داده شده است:
    /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، با پشتیبانی Apigee Edge تماس بگیرید.

پیکربندی سرایند نادیده گرفتن اجازه برای دارایی ۴۰۵ روی «پردازشگرهای پیام» روی نادرست تنظیم شد

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

  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 را به‌عنوان true در فایل http.properties نشان دهد، همان‌طور که در زیر نشان داده شده است:
    /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. اگر بیش‌از یک «پردازشگر پیام» دارید، مراحل بالا را در همه «پردازشگرهای پیام» تکرار کنید.

درحال تأیید اینکه سرایند نادیده گرفتن اجازه برای دارایی ۴۰۵ روی «پردازشگرهای پیام» روی «نادرست» تنظیم شده است

این بخش توضیح می‌دهد چگونه تأیید کنید که دارایی 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 را به‌صورت false در فایل http.properties نشان دهد، همان‌طور که در زیر نشان داده شده است:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
  3. اگر هنوز مقدار دارایی HTTP.ignore.allow_header.for.405 را true می‌بینید، بررسی کنید که همه مراحل ذکرشده در پیکربندی سرصفحه نادیده گرفتن اجازه برای دارایی ۴۰۵ روی «پردازشگرهای پیام» روی نادرست را به‌درستی دنبال کرده باشید. اگر مرحله‌ای را ازدست داده‌اید، همه مراحل را دوباره به‌درستی تکرار کنید.
  4. اگر همچنان نمی‌توانید دارایی را اصلاح کنید HTTP.ignore.allow_header.for.405، با پشتیبانی Apigee Edge تماس بگیرید.