আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
লক্ষণ
ক্লায়েন্ট অ্যাপ্লিকেশনটি এপিআই কলের প্রতিক্রিয়া হিসাবে 502 Bad Gateway HTTP স্ট্যাটাস কোড এবং protocol.http.Response405WithoutAllowHeader এরর কোডটি পায়।
ত্রুটির বার্তা
ক্লায়েন্ট অ্যাপ্লিকেশনটি নিম্নলিখিত প্রতিক্রিয়া কোডটি পায়:
HTTP/1.1 502 Bad Gateway
এছাড়াও, আপনি নিম্নলিখিত ত্রুটি বার্তাটি দেখতে পারেন:
{
"fault":{
"faultstring":"Received 405 Response without Allow Header",
"detail":{
"errorcode":"protocol.http.Response405WithoutAllowHeader"
}
}
}সম্ভাব্য কারণসমূহ
ব্যাকএন্ড সার্ভার Allow হেডার ছাড়া 405 Method Not Allowed স্ট্যাটাস কোড দিয়ে সাড়া দিলে এই ত্রুটিটি ঘটে।
RFC 7231 স্পেসিফিকেশনের ৬.৫.৫: ৪০৫ মেথড নট অ্যালাউড (405 Method Not Allowed) ধারা অনুসারে, এটি প্রত্যাশিত যে অরিজিন সার্ভার একটি 405 রেসপন্সে অবশ্যই একটি Allow হেডার ফিল্ড তৈরি করে পাঠাবে, যেখানে টার্গেট রিসোর্সের বর্তমানে সমর্থিত মেথডগুলোর একটি তালিকা থাকবে। যদি তা না করা হয়, তাহলে Apigee 502 Bad Gateway এবং protocol.http.Response405WithoutAllowHeader এরর কোড দিয়ে রেসপন্স করে।
| কারণ | বর্ণনা | সমস্যা সমাধানের নির্দেশাবলী প্রযোজ্য |
|---|---|---|
| ব্যাকএন্ড সার্ভার থেকে Allow হেডার ছাড়া 405 রেসপন্স | যে ব্যাকএন্ড সার্ভারটি এপিআই অনুরোধটি প্রসেস করছে, সেটি Allow হেডার ছাড়া 405 স্ট্যাটাস কোড দিয়ে সাড়া দেয়। | এজ পাবলিক এবং প্রাইভেট ক্লাউড ব্যবহারকারীরা |
সাধারণ রোগ নির্ণয়ের পদক্ষেপ
এই ত্রুটি নির্ণয় করতে নিম্নলিখিত সরঞ্জাম/কৌশলগুলোর মধ্যে যেকোনো একটি ব্যবহার করুন:
এপিআই মনিটরিং
এপিআই মনিটরিং ব্যবহার করে ত্রুটি নির্ণয় করতে:
- উপযুক্ত ভূমিকা সম্পন্ন একজন ব্যবহারকারী হিসেবে Edge UI- তে লগ ইন করুন।
যে প্রতিষ্ঠানে আপনি বিষয়টি তদন্ত করতে চান, সেখানে যান।

- Analyze > API Monitoring > Investigate পৃষ্ঠায় যান।
- সেই নির্দিষ্ট সময়সীমাটি নির্বাচন করুন যার মধ্যে আপনি ত্রুটিগুলো লক্ষ্য করেছেন।
সময়ের সাপেক্ষে ফল্ট কোডের লেখচিত্র অঙ্কন করুন।
নিচে দেখানো অনুযায়ী,
protocol.http.Response405WithoutAllowHeaderফল্ট কোডটি রয়েছে এমন একটি সেল নির্বাচন করুন:
ফল্ট কোড
protocol.http.Response405WithoutAllowHeaderhttp.Response405WithoutAllowHeader সম্পর্কিত তথ্য নিচে দেখানো অনুযায়ী প্রদর্শিত হয়:
আরও তথ্য দেখতে 'লগ দেখুন'-এ ক্লিক করুন এবং ব্যর্থ অনুরোধগুলির মধ্যে একটি প্রসারিত করুন।

- লগস উইন্ডো থেকে নিম্নলিখিত বিবরণগুলো নোট করুন:
- স্ট্যাটাস কোড:
502 - ত্রুটির উৎস:
target - ত্রুটি কোড:
protocol.http.Response405WithoutAllowHeader.
- স্ট্যাটাস কোড:
- যদি ফল্ট সোর্স (Fault Source)
targetহয় এবং ফল্ট কোড (Fault Code )protocol.http.Response405WithoutAllowHeaderহয়, তাহলে এটি নির্দেশ করে যে ব্যাকএন্ড সার্ভারAllowহেডার ছাড়াই405 Method Not Allowedস্ট্যাটাস কোড দিয়ে সাড়া দিয়েছে।
ট্রেস টুল
ট্রেস টুল ব্যবহার করে ত্রুটি নির্ণয় করতে:
- ট্রেস সেশনটি সক্রিয় করুন এবং হয়
-
502 Bad Gatewayত্রুটিটি ঘটার জন্য অপেক্ষা করুন, অথবা - আপনি যদি সমস্যাটি পুনরায় তৈরি করতে পারেন, তাহলে সমস্যাটি পুনরুৎপাদন করতে এপিআই কলটি করুন -
502 Bad Gatewayত্রুটি
-
নিশ্চিত করুন যে 'Show all FlowInfos' চালু আছে:

- ব্যর্থ হওয়া অনুরোধগুলোর মধ্যে একটি নির্বাচন করুন এবং ট্রেসটি পরীক্ষা করুন।
- ট্রেসের বিভিন্ন ধাপ অতিক্রম করে ত্রুটিটি কোথায় ঘটেছে তা খুঁজে বের করুন।
আপনি সাধারণত টার্গেট সার্ভারে অনুরোধ পাঠানোর ধাপের পরের ফ্লোতে ত্রুটিটি দেখতে পাবেন, যেমনটি নিচে দেখানো হয়েছে:

ট্রেস থেকে ত্রুটির মানটি নোট করুন।
উপরের নমুনা ট্রেসটিতে "
Received 405 Response without Allow Headerত্রুটিটি দেখানো হচ্ছে। যেহেতু ব্যাকএন্ড সার্ভারে অনুরোধ পাঠানোর পরে Apigee এই ত্রুটিটি দেখিয়েছে, তাই এটি নির্দেশ করে যে ব্যাকএন্ড সার্ভারটিAllowহেডার ছাড়াই405রেসপন্স স্ট্যাটাস কোডটি পাঠিয়েছে।- ট্রেসটিতে থাকা AX (অ্যানালিটিক্স ডেটা রেকর্ডেড) ফেজটিতে যান এবং এটিতে ক্লিক করুন।
Phase Details প্যানেলে Error / Response Headers সেকশন পর্যন্ত স্ক্রল করুন এবং নিচে দেখানো অনুযায়ী X-Apigee-fault-code এবং X-Apigee-fault-source- এর মান নির্ধারণ করুন:

- আপনি X-Apigee-fault-code এবং X-Apigee-fault-source- এর মান যথাক্রমে
protocol.http.Response405WithoutAllowHeaderএবংtargetহিসেবে দেখতে পাবেন, যা নির্দেশ করে যে ব্যাকএন্ডAllowহেডার ছাড়াই405রেসপন্স স্ট্যাটাস কোড পাঠানোর কারণে এই ত্রুটিটি ঘটেছে।প্রতিক্রিয়া হেডার মূল্য এক্স-এপিজি-ফল্ট-কোড protocol.http.Response405WithoutAllowHeaderএক্স-এপিজি-ফল্ট-সোর্স target
এনজিআইএনএক্স
NGINX অ্যাক্সেস লগ ব্যবহার করে ত্রুটি নির্ণয় করতে:
- আপনি যদি একজন প্রাইভেট ক্লাউড ব্যবহারকারী হন, তাহলে HTTP
502ত্রুটি সম্পর্কিত গুরুত্বপূর্ণ তথ্য জানতে NGINX অ্যাক্সেস লগ ব্যবহার করতে পারেন। NGINX অ্যাক্সেস লগগুলি পরীক্ষা করুন:
/opt/apigee/var/log/edge-router/nginx/ORG~ORG.PORT#_access_log
যেখানে: ORG , ORG এবং PORT# প্রকৃত মান দ্বারা প্রতিস্থাপিত হবে।
- একটি নির্দিষ্ট সময়কালের মধ্যে
protocol.http.Response405WithoutAllowHeaderএরর কোড সহ কোনো502এরর আছে কিনা (যদি সমস্যাটি অতীতে ঘটে থাকে) অথবা এখনও কোনো রিকোয়েস্ট502এরর দেখিয়ে ফেইল করছে কিনা তা খুঁজে দেখুন। যদি আপনি
protocol.http.Response405WithoutAllowHeaderএর মানের সাথে মিলে যাওয়া X-Apigee-fault-code সহ কোনো502ত্রুটি খুঁজে পান, তাহলে X-Apigee-fault-source-এর মান নির্ধারণ করুন।NGINX অ্যাক্সেস লগ থেকে প্রাপ্ত একটি নমুনা 502 ত্রুটি:

NGINX অ্যাক্সেস লগ থেকে নেওয়া উপরের নমুনা এন্ট্রিটিতে X-Apigee-fault-code এবং X-Apigee-fault-source-এর জন্য নিম্নলিখিত মানগুলি রয়েছে:
প্রতিক্রিয়া হেডার মূল্য এক্স-এপিজি-ফল্ট-কোড protocol.http.Response405WithoutAllowHeaderএক্স-এপিজি-ফল্ট-সোর্স target
কারণ: ব্যাকএন্ড সার্ভার থেকে Allow হেডার ছাড়া 405 রেসপন্স
রোগ নির্ণয়
- সাধারণ ডায়াগনোসিস ধাপগুলিতে ব্যাখ্যা করা অনুযায়ী API মনিটরিং, ট্রেস টুল বা NGINX অ্যাক্সেস লগ ব্যবহার করে
502 Bad Gatewayজন্য ফল্ট কোড এবং ফল্ট সোর্স নির্ধারণ করুন। - যদি ফল্ট কোডটি
protocol.http.Response405WithoutAllowHeaderহয় এবং ফল্ট সোর্সের মানtargetহয়, তাহলে এটি নির্দেশ করে যে ব্যাকএন্ড সার্ভারAllowহেডার ছাড়া405স্ট্যাটাস কোড দিয়ে সাড়া দিয়েছে। তাই, Apigeeprotocol.http.Response405WithoutAllowHeaderএরর কোড সহ502 Bad Gatewayদিয়ে সাড়া দেয়।
সমাধান
সমস্যাটি সমাধান করতে নিম্নলিখিত পদ্ধতিগুলোর মধ্যে যেকোনো একটি ব্যবহার করুন:
ব্যাকএন্ড সার্ভার
বিকল্প #১: Allow হেডার সহ 405 স্ট্যাটাস কোড পাঠানোর জন্য ব্যাকএন্ড সার্ভারটি ঠিক করুন:
নিশ্চিত করুন যে ব্যাকএন্ড সার্ভার সর্বদা RFC 7231, সেকশন 6.5.5: 405 Method Not Allowed স্পেসিফিকেশনটি মেনে চলে এবং নীচে দেখানো
Allowহেডারের অংশ হিসাবে অনুমোদিত মেথডগুলির তালিকা অন্তর্ভুক্ত করে405স্ট্যাটাস কোড সহ ডেটা পাঠায়:Allow: HTTP_METHODS
- উদাহরণস্বরূপ, যদি আপনার ব্যাকএন্ড সার্ভার
GET,POSTএবংHEADমেথড অনুমোদন করে, তাহলে আপনাকে নিশ্চিত করতে হবে যেAllowহেডারে সেগুলো নিম্নরূপভাবে অন্তর্ভুক্ত আছে:Allow: GET, POST, HEAD
ত্রুটি পরিচালনা
বিকল্প #২: ফল্ট হ্যান্ডলিং ব্যবহার করে আপনার এপিআই প্রক্সি থেকে Allow হেডার সহ 405 স্ট্যাটাস কোড পাঠান:
যদি ব্যাকএন্ড সার্ভার Allow হেডার ছাড়া 405 স্ট্যাটাস কোড ফেরত দেয়, তাহলে আপনি ফল্ট হ্যান্ডলিং ব্যবহার করে আপনার এপিআই প্রক্সি থেকে 405 স্ট্যাটাস কোড এবং Allow হেডার সহ নিম্নরূপে সাড়া দিতে পারেন:
AssignMessage পলিসি বা RaiseFault পলিসির মতো একটি পলিসি তৈরি করুন এবং
Allowহেডার ও একটি কাস্টম মেসেজ সহ স্ট্যাটাস কোডটি405এ সেট করুন।Allow হেডার সহ 405 পাঠানোর জন্য AssignMessage পলিসির একটি নমুনা:
<AssignMessage async="false" continueOnError="false" enabled="true" name="AM-405WithAllowHeader"> <DisplayName>AM-405WithAllowHeader</DisplayName> <Set> <Payload contentType="application/json">{"Specified method is not allowed. Please use one of the methods mentioned in the Allow header."}</Payload> <StatusCode>405</StatusCode> <ReasonPhrase>Method Not Allowed</ReasonPhrase> </Set> <Add> <Headers> <Header name="Allow">GET, POST, HEAD</Header> </Headers> </Add> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
TargetEndpointএ একটিFaultRuleতৈরি করুন, যাprotocol.http.Response405WithoutAllowHeaderএরর কোড সহ502এরর পেলে পলিসিটি কার্যকর করবে।FaultRul দেখানো নমুনা TargetEndpoint কনফিগারেশন:
<TargetEndpoint name="default"> ... <FaultRules> <FaultRule name="405WithoutAllowHeader"> <Step> <Name>AM-405WithAllowHeader</Name> </Step> <Condition>(fault.name = "Response405WithoutAllowHeader")</Condition> </FaultRule> </FaultRules>- আপনার এপিআই প্রক্সির একটি নতুন সংস্করণে এই পরিবর্তনগুলি সংরক্ষণ করুন এবং সংস্করণটি স্থাপন করুন।
- এপিআই কলগুলো করুন এবং যাচাই করুন যে আপনি
Allowহেডার সহ405স্ট্যাটাস কোডটি পাচ্ছেন।
সম্পত্তি কনফিগার করুন
বিকল্প #৩: Apigee Edge-কে 502 এরর ফেরত দেওয়া থেকে বিরত রাখতে মেসেজ প্রসেসরে প্রপার্টিটি কনফিগার করুন।
- আপনি যদি একজন প্রাইভেট ক্লাউড ব্যবহারকারী হন, তাহলে "মেসেজ প্রসেসরে
502প্রপার্টির জন্য ইগনোর অ্যালাউ হেডার কনফিগার করা" শীর্ষক হাউ-টু গাইডটি ব্যবহার করেHTTP.ignore.allow_header.for.405প্রপার্টিটিtrueতে আপডেট করতে পারেন। এর ফলে, ব্যাকএন্ড সার্ভারAllowহেডার ছাড়া405স্ট্যাটাস কোড দিয়ে সাড়া দিলেও Apigee Edge 502 এরর দেখানো থেকে বিরত থাকবে । - আপনি যদি পাবলিক ক্লাউড ব্যবহারকারী হন, তাহলে অনুগ্রহ করে Apigee Edge Support-এর সাথে যোগাযোগ করুন।
স্পেসিফিকেশন
Apigee নিম্নলিখিত স্পেসিফিকেশন অনুযায়ী ব্যাকএন্ড সার্ভার থেকে Allow হেডার সহ 405 Method Not Allowed রেসপন্স আশা করে:
| স্পেসিফিকেশন | |
|---|---|
| আরএফসি ৭২৩১, ধারা ৬.৫.৫: ৪০৫ পদ্ধতিটি অনুমোদিত নয় | |
| আরএফসি ৭২৩১, ধারা ৭.৪.১: অনুমতি দিন |
লক্ষণীয় গুরুত্বপূর্ণ বিষয়সমূহ
সুপারিশকৃত সমাধান হলো, ব্যাকএন্ড সার্ভারকে Allow হেডার সহ 405 স্ট্যাটাস কোড পাঠানোর জন্য ঠিক করা এবং RFC 7231 স্পেসিফিকেশনের 6.5.5: 405 Method Not Allowed সেকশনটি মেনে চলা।
আপনার যদি এখনও Apigee Support-এর কাছ থেকে কোনো সাহায্যের প্রয়োজন হয়, তাহলে Must gather diagnostic information- এ যান।
রোগ নির্ণয়ের তথ্য অবশ্যই সংগ্রহ করতে হবে
উপরোক্ত নির্দেশাবলী অনুসরণ করার পরেও যদি সমস্যাটি থেকে যায়, তাহলে নিম্নলিখিত ডায়াগনস্টিক তথ্য সংগ্রহ করুন এবং তারপর Apigee Edge Support-এর সাথে যোগাযোগ করুন।
আপনি যদি পাবলিক ক্লাউড ব্যবহারকারী হন, তাহলে নিম্নলিখিত তথ্যগুলো প্রদান করুন:
- সংস্থার নাম
- পরিবেশের নাম
- এপিআই প্রক্সি নাম
-
protocol.http.Response405WithoutAllowHeaderকোড সহ502 Bad Gatewayত্রুটিটি পুনরুৎপাদন করতে ব্যবহৃত সম্পূর্ণcurlকমান্ড। - এপিআই অনুরোধগুলির ট্রেস ফাইল
আপনি যদি একজন প্রাইভেট ক্লাউড ব্যবহারকারী হন, তাহলে নিম্নলিখিত তথ্যগুলো প্রদান করুন:
- ব্যর্থ অনুরোধগুলির জন্য সম্পূর্ণ ত্রুটি বার্তা পরিলক্ষিত হয়েছে।
- পরিবেশের নাম
- এপিআই প্রক্সি বান্ডেল
- এপিআই অনুরোধগুলির ট্রেস ফাইল
NGINX অ্যাক্সেস লগ
/opt/apigee/var/log/edge-router/nginx/ORG~ORG.PORT#_access_log
যেখানে: ORG , ORG এবং PORT# প্রকৃত মান দ্বারা প্রতিস্থাপিত হবে।
- মেসেজ প্রসেসর সিস্টেম লগ
/opt/apigee/var/log/edge-message-processor/logs/system.log