আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
ক্লায়েন্ট-সার্ভার যোগাযোগের ক্ষেত্রে, যদি ক্লায়েন্টের দেওয়া HTTP অনুরোধের পদ্ধতিটি সার্ভারের জানা থাকা সত্ত্বেও টার্গেট রিসোর্স দ্বারা সমর্থিত না হয়, তাহলে সার্ভার HTTP স্ট্যাটাস কোড 405 Method Not Allowed দিয়ে সাড়া দেয়। একইভাবে Apigee Edge-এ, ব্যাকএন্ড সার্ভারও HTTP স্ট্যাটাস কোড 405 Method Not Allowed.
Apigee Edge আশা করে যে , RFC 7231 স্পেসিফিকেশনের 6.5.5: 405 Method Not Allowed ধারা অনুসারে, ব্যাকএন্ড সার্ভার Allow হেডারে অনুমোদিত মেথডগুলোর তালিকা সহ 405 Method Not Allowed Not Allowed রেসপন্স পাঠাবে।
Allow হেডারটি অবশ্যই নিম্নলিখিত বিন্যাসে পাঠাতে হবে:
Allow: HTTP_METHODS
উদাহরণস্বরূপ, যদি আপনার ব্যাকএন্ড সার্ভার GET , POST এবং HEAD মেথড অনুমোদন করে, তাহলে আপনাকে নিশ্চিত করতে হবে যে Allow হেডারে সেগুলো নিম্নরূপভাবে অন্তর্ভুক্ত আছে:
Allow: GET, POST, HEAD
যদি ব্যাকএন্ড সার্ভার HTTP স্ট্যাটাস কোড 405 Method Not Allowed, এর সাথে Allow হেডার না পাঠায়, তাহলে Apigee ক্লায়েন্ট অ্যাপ্লিকেশনে এরর কোড protocol.http.Response405WithoutAllowHeader সহ HTTP স্ট্যাটাস কোড 502 Bad Gateway ফেরত পাঠায়। এই এররটি সমাধানের জন্য প্রস্তাবিত উপায় হলো, ব্যাকএন্ড সার্ভারটিকে RFC 7231-এর ৬.৫.৫: 405 Method Not Allowed স্পেসিফিকেশন অনুযায়ী ঠিক করা অথবা "502 Bad Gateway - Response 405 without Allow header" ট্রাবলশুটিং প্লেবুকে ব্যাখ্যা করা অনুযায়ী ফল্ট হ্যান্ডলিং ব্যবহার করে Allow হেডার সহ HTTP স্ট্যাটাস কোড 405 Method Not Allowed দিয়ে সাড়া দেওয়া।
তবে, কিছু ব্যতিক্রমী ক্ষেত্রে, এই সমস্যাটির সমাধান করার জন্য আপনার ব্যাকএন্ড ঠিক করা বা আপনার এপিআই প্রক্সি পরিবর্তন করা তাৎক্ষণিকভাবে সম্ভব নাও হতে পারে।
এই ধরনের ক্ষেত্রে, আপনি সাময়িকভাবে মেসেজ প্রসেসর লেভেলে HTTP.ignore.allow_header.for.405 405 জন্য ignore allow header সেট করতে পারেন। এই প্রপার্টিটি true তে সেট করলে, ব্যাকএন্ড সার্ভার Allow হেডার ছাড়া HTTP স্ট্যাটাস কোড 405 Method Not Allowed পাঠালেও Apigee ক্লায়েন্ট অ্যাপ্লিকেশনগুলিতে 502 Bad Gateway রেসপন্স পাঠানো বন্ধ করে দেয়।
একবার আপনি আপনার ব্যাকএন্ড সার্ভারকে Allow হেডার সহ HTTP স্ট্যাটাস কোড 405 Method Not Allowed পাঠানোর জন্য ঠিক করতে পারলে, আপনি HTTP.ignore.allow_header.for.405 প্রপার্টিটিকে এর ডিফল্ট মান false এ ফিরিয়ে দিতে পারেন।
শুরু করার আগে
এই নথিতে বর্ণিত ধাপগুলো ব্যবহার করার আগে, নিম্নলিখিত বিষয়গুলো আপনি ভালোভাবে বুঝেছেন কিনা তা নিশ্চিত করুন:
- প্লেবুকটি পড়ুন - 502 ব্যাড গেটওয়ে - Allow হেডার ছাড়া রেসপন্স 405 ।
- আপনি যদি প্রাইভেট ক্লাউডে Edge-এর প্রোপার্টি কনফিগার করার বিষয়ে পরিচিত না হন, তাহলে “How to configure Edge” পড়ুন।
মেসেজ প্রসেসরগুলিতে 405 প্রপার্টির জন্য ignore allow header-কে true হিসেবে কনফিগার করা
Apigee Edge-এ, HTTP.ignore.allow_header.for.405 প্রপার্টিটি ডিফল্টরূপে false সেট করা থাকে। এর ফলে, যদি ব্যাকএন্ড সার্ভার Allow হেডার ছাড়া HTTP স্ট্যাটাস কোড 405 Method Not Allowed পাঠায়, তাহলে Apigee Edge ক্লায়েন্ট অ্যাপ্লিকেশনগুলিতে protocol.http.Response405WithoutAllowHeader এরর কোড সহ 502 Bad Gateway ফেরত পাঠাতে পারে। আপনি যদি Apigee Edge-কে ক্লায়েন্ট অ্যাপ্লিকেশনগুলিতে 502 Bad Gateway পাঠানো থেকে বিরত রাখতে চান, তাহলে আপনাকে Message Processors-এ HTTP.ignore.allow_header.for.405 প্রপার্টিটির মান true সেট করতে হবে।
এই বিভাগে ব্যাখ্যা করা হয়েছে কিভাবে " How to configure Edge" -এ বর্ণিত সিনট্যাক্স অনুযায়ী টোকেন ব্যবহার করে মেসেজ প্রসেসরগুলিতে HTTP.ignore.allow_header.for.405 প্রপার্টিটিকে ' true হিসেবে কনফিগার করতে হয়।
মেসেজ প্রসেসর মেশিনে, নিম্নলিখিত ফাইলটি একটি এডিটরে খুলুন। যদি এটি আগে থেকে বিদ্যমান না থাকে, তবে এটি তৈরি করুন।
/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 প্রপার্টির জন্য 'ignore allow' হেডারটি 'true' সেট করা আছে কিনা তা যাচাই করা হচ্ছে।
এই অংশে ব্যাখ্যা করা হয়েছে কিভাবে যাচাই করতে হয় যে মেসেজ প্রসেসরগুলিতে HTTP.ignore.allow_header.for.405 প্রপার্টিটি সফলভাবে ' true তে আপডেট করা হয়েছে।
যদিও আপনি মেসেজ প্রসেসরের প্রপার্টির মান আপডেট করার জন্য conf_http_HTTP.ignore.allow_header.for.405 টোকেনটি ব্যবহার করেন, আপনাকে যাচাই করতে হবে যে প্রকৃত HTTP.ignore.allow_header.for.405 প্রপার্টিটির মান true সেট করা হয়েছে কি না।
- মেসেজ প্রসেসর মেশিনে,
/opt/apigee/edge-message-processor/confডিরেক্টরিতেHTTP.ignore.allow_header.for.405প্রপার্টিটি খুঁজুন এবং নিচে দেখানো অনুযায়ী এটিtrueতে সেট করা আছে কিনা তা পরীক্ষা করুন:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- যদি মেসেজ প্রসেসরে প্রপার্টিটি সফলভাবে আপডেট করা হয়, তাহলে উপরের কমান্ডটি
http.propertiesফাইলেHTTP.ignore.allow_header.for.405প্রপার্টিটির মানtrueহিসেবে দেখাবে, যেমনটি নিচে দেখানো হয়েছে:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- যদি আপনি এখনও
HTTP.ignore.allow_header.for.405প্রপার্টির মানfalseদেখতে পান, তাহলে যাচাই করুন যে আপনি মেসেজ প্রসেসরে 405 প্রপার্টির জন্য ignore allow header-কে true সেট করার জন্য বর্ণিত সমস্ত ধাপ সঠিকভাবে অনুসরণ করেছেন কিনা। যদি আপনি কোনো ধাপ বাদ দিয়ে থাকেন, তাহলে সমস্ত ধাপ আবার সঠিকভাবে পুনরাবৃত্তি করুন। - আপনি যদি এখনও
HTTP.ignore.allow_header.for.405প্রপার্টিটি পরিবর্তন করতে না পারেন, তাহলে Apigee Edge Support-এর সাথে যোগাযোগ করুন।
মেসেজ প্রসেসরগুলিতে 405 প্রপার্টির জন্য ignore allow হেডারকে false হিসেবে কনফিগার করা
এই বিভাগে ব্যাখ্যা করা হয়েছে কিভাবে "How to configure Edge" -এ বর্ণিত সিনট্যাক্স অনুযায়ী টোকেন ব্যবহার করে মেসেজ প্রসেসরে HTTP.ignore.allow_header.for.405 প্রপার্টিটিকে এর ডিফল্ট মান false এ কনফিগার করতে হয়।
-
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
- যদি মেসেজ প্রসেসরে প্রপার্টিটি '
trueসেট করা থাকে, তাহলে উপরের কমান্ডটিhttp.propertiesফাইলেHTTP.ignore.allow_header.for.405প্রপার্টির মান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 প্রপার্টির জন্য '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 সেট করা হয়েছে কিনা।
- মেসেজ প্রসেসর মেশিনে,
/opt/apigee/edge-message- processor/confডিরেক্টরিতেHTTP.ignore.allow_header.for.405প্রপার্টিটি খুঁজুন এবং নিচে দেখানো অনুযায়ী এটিfalseএ সেট করা আছে কিনা তা পরীক্ষা করুন:grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
- যদি মেসেজ প্রসেসরে প্রপার্টিটি সফলভাবে আপডেট করা হয়, তাহলে উপরের কমান্ডটি
http.propertiesফাইলেHTTP.ignore.allow_header.for.405প্রপার্টির মানfalseহিসেবে দেখাবে, যেমনটি নিচে দেখানো হয়েছে:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
- যদি আপনি এখনও
HTTP.ignore.allow_header.for.405প্রপার্টির মানtrueদেখতে পান, তাহলে যাচাই করুন যে আপনি "মেসেজ প্রসেসরে 405 প্রপার্টির জন্য ignore allow header-কে false কনফিগার করা" অংশে বর্ণিত সমস্ত ধাপ সঠিকভাবে অনুসরণ করেছেন কিনা। যদি আপনি কোনো ধাপ বাদ দিয়ে থাকেন, তাহলে সমস্ত ধাপ আবার সঠিকভাবে পুনরাবৃত্তি করুন। - আপনি যদি এখনও
HTTP.ignore.allow_header.for.405প্রপার্টিটি পরিবর্তন করতে না পারেন, তাহলে Apigee Edge Support-এর সাথে যোগাযোগ করুন।