আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন। তথ্য
ক্লায়েন্ট-সার্ভার কমিউনিকেশনে, ক্লায়েন্টের দেওয়া
HTTP অনুরোধ পদ্ধতি সার্ভারের জানা থাকলে
কিন্তু টার্গেট রিসোর্সে কাজ না করলে, সার্ভার HTTP স্ট্যাটাস কোড 405
Method Not Allowed দিয়ে উত্তর দেয়। একইভাবে, Apigee Edge-এ, ব্যাকএন্ড সার্ভার HTTP স্ট্যাটাস কোড 405 Method Not Allowed.
Apigee Edge আশা করে যে ব্যাকএন্ড সার্ভার Allow হেডারে অনুমোদিত পদ্ধতির তালিকা সহ 405 Method Not Allowed উত্তর পাঠাবে
স্পেসিফিকেশন অনুযায়ী
RFC 7231, বিভাগ 6.5.5: 405 মেথড অনুমোদিত নয়।
Allow হেডারটি নিম্নলিখিত ফর্ম্যাটে পাঠাতে হবে:
Allow: HTTP_METHODS
যেমন, আপনার ব্যাকএন্ড সার্ভার GET, POST এবং
HEAD পদ্ধতি অনুমোদন করলে, আপনাকে নিশ্চিত করতে হবে যে Allow হেডারে সেগুলি
নিম্নলিখিতভাবে আছে:
Allow: GET, POST, HEAD
ব্যাকএন্ড সার্ভার HTTP স্ট্যাটাস কোডের সাথে Allow হেডার না পাঠালে
405 Method Not Allowed, Apigee ক্লায়েন্ট অ্যাপ্লিকেশনকে
502 Bad
Gateway HTTP স্ট্যাটাস কোড ও 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।
তবে, কিছু ব্যতিক্রমী ক্ষেত্রে, আপনার ব্যাকএন্ড ঠিক করা বা এই সমস্যার সমাধান করার জন্য আপনার API প্রক্সি অবিলম্বে পরিবর্তন করা সম্ভব নাও হতে পারে।
এই ধরনের ক্ষেত্রে, আপনি সাময়িকভাবে মেসেজ প্রসেসর লেভেলে 405 প্রপার্টির
HTTP.ignore.allow_header.for.405 জন্য
'এড়িয়ে যাওয়ার অনুমতি' হেডার সেট করতে পারেন। এই প্রপার্টি true হিসেবে সেট করলে, Apigee
ক্লায়েন্ট অ্যাপ্লিকেশনকে 502 Bad Gateway রেসপন্স ফেরত পাঠাতে পারে না, এমনকি যদি
ব্যাকএন্ড সার্ভার Allow হেডার ছাড়া HTTP স্ট্যাটাস কোড 405 Method Not Allowed পাঠায়।
আপনি যখন Allow হেডার সহ HTTP স্ট্যাটাস কোড 405 Method
Not Allowed পাঠানোর জন্য আপনার ব্যাকএন্ড সার্ভার ঠিক করতে পারবেন, তখন আপনি প্রপার্টি
HTTP.ignore.allow_header.for.405-কে এর ডিফল্ট ভ্যালু false-এ ফিরিয়ে আনতে পারবেন।
শুরু করার আগে
এই ডকুমেন্টে উল্লেখ করা ধাপগুলি ব্যবহার করার আগে, নিম্নলিখিত বিষয়গুলি আপনি বুঝেছেন কিনা তা নিশ্চিত করুন:
- প্লেবুক পড়ুন - 502 ভুল গেটওয়ে - Allow হেডার ছাড়া উত্তর 405।
- প্রাইভেট ক্লাউডে Edge-এর জন্য প্রপার্টি কনফিগার করার ব্যাপারে আপনি পরিচিত না হলে, 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 না পাঠাক, তাহলে আপনাকে
HTTP.ignore.allow_header.for.405 প্রপার্টির ভ্যালু true-এ সেট করতে হবে
মেসেজ প্রসেসর।
এই বিভাগে, টোকেন ব্যবহার করে
HTTP.ignore.allow_header.for.405 থেকে true প্রপার্টি
Message Processors-এ কীভাবে কনফিগার করতে হয় তা ব্যাখ্যা করা হয়েছে। টোকেনটি
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
- আপনার কাছে একাধিক মেসেজ প্রসেসর থাকলে, সব মেসেজ প্রসেসরের ক্ষেত্রে উপরের ধাপগুলি রিপিট করুন।
মেসেজ প্রসেসরে ৪০৫ প্রপার্টির জন্য 'উপেক্ষা করার অনুমতি' হেডার যাচাই করার বিকল্প 'সত্য' হিসেবে সেট করা আছে
এই বিভাগে কীভাবে যাচাই করতে হয় যে মেসেজ প্রসেসরে
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
- মেসেজ প্রসেসরে প্রপার্টি সফলভাবে আপডেট করা হলে, উপরের কমান্ড
নিচে দেখানো
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 প্রপার্টির জন্য উপেক্ষা করার অনুমতি হেডারকে true হিসেবে কনফিগার করার পদ্ধতি সঠিকভাবে অনুসরণ করেছেন কিনা তা যাচাই করুন। আপনি কোনও ধাপ মিস করে থাকলে, সব ধাপ আবার সঠিকভাবে রিপিট করুন। - আপনি এখনও প্রপার্টি পরিবর্তন করতে না পারলে
HTTP.ignore.allow_header.for.405, Apigee Edge সহায়তা টিমের সাথে যোগাযোগ করুন।
মেসেজ প্রসেসরে 405 প্রপার্টির জন্য ignore allow header-কে false হিসেবে কনফিগার করা
এই বিভাগে, Message Processor-এ প্রপার্টি
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.propertiesফাইলেtrueহিসেবে দেখাবে, যেমন নিচে দেখানো হয়েছে:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
- উপরের কমান্ডে যদি দেখা যায় যে প্রপার্টি
HTTP.ignore.allow_header.for.405false(ডিফল্ট ভ্যালু) হিসেবে সেট করা আছে, তাহলে আপনাকে আর কিছু করতে হবে না। অর্থাৎ, নিচের ধাপগুলি এড়িয়ে যান। - প্রপার্টি
HTTP.ignore.allow_header.for.405trueহিসেবে সেট করা থাকলে, এর ডিফল্ট ভ্যালুfalseফিরিয়ে আনতে, নিম্নলিখিত ধাপগুলি অনুসরণ করুন। 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
- আপনার কাছে একাধিক মেসেজ প্রসেসর থাকলে, সব মেসেজ প্রসেসরের ক্ষেত্রে উপরের ধাপগুলি রিপিট করুন।
মেসেজ প্রসেসরে ৪০৫ প্রপার্টির জন্য 'উপেক্ষা করার অনুমতি' হেডার যাচাই করার বিকল্প 'ফলস' হিসেবে সেট করা আছে
এই বিভাগে কীভাবে যাচাই করতে হয় যে মেসেজ প্রসেসরে
HTTP.ignore.allow_header.for.405 প্রপার্টিটি সফলভাবে false
আপডেট করা হয়েছে তা ব্যাখ্যা করা হয়েছে।
আপনি Message
Processor-এ ভ্যালু আপডেট করার জন্য token
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
- মেসেজ প্রসেসরে প্রপার্টি সফলভাবে আপডেট করা হলে, উপরের কমান্ড
প্রপার্টির ভ্যালু
HTTP.ignore.allow_header.for.405হিসেবেfalsehttp.propertiesফাইলে দেখাবে, যেমন নিচে দেখানো হয়েছে:/opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
- আপনি যদি এখনও প্রপার্টির ভ্যালু
HTTP.ignore.allow_header.for.405হিসেবেtrueদেখতে পান, তাহলে মেসেজ প্রসেসরে 405 প্রপার্টির জন্য উপেক্ষা করার অনুমতি সংক্রান্ত হেডারকে false হিসেবে কনফিগার করা সম্পর্কিত সমস্ত ধাপ সঠিকভাবে অনুসরণ করেছেন কিনা তা যাচাই করুন। আপনি কোনও ধাপ মিস করে থাকলে, সঠিকভাবে আবার সব ধাপ রিপিট করুন। - আপনি এখনও প্রপার্টি পরিবর্তন করতে না পারলে
HTTP.ignore.allow_header.for.405, Apigee Edge সহায়তা টিমের সাথে যোগাযোগ করুন।