আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান । তথ্য
উপসর্গ
ক্লায়েন্ট অ্যাপ্লিকেশনটি API কলগুলির প্রতিক্রিয়া হিসাবে ত্রুটি কোড protocol.http.Response405WithoutAllowHeader
সহ 502 Bad Gateway
একটি HTTP স্ট্যাটাস কোড পায়।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 অনুযায়ী, বিভাগ 6.5.5: 405 পদ্ধতি অনুমোদিত নয় , এটি প্রত্যাশিত যে অরিজিন সার্ভার অবশ্যই একটি 405
প্রতিক্রিয়াতে একটি Allow
হেডার ক্ষেত্র তৈরি এবং পাঠাতে হবে যার মধ্যে লক্ষ্য সম্পদের বর্তমানে সমর্থিত পদ্ধতিগুলির একটি তালিকা রয়েছে৷ যদি না হয়, তাহলে Apigee 502 Bad Gateway
এবং এরর কোড protocol.http.Response405WithoutAllowHeader
দিয়ে প্রতিক্রিয়া জানায়।http.Response405WithoutAllowHeader।
কারণ | বর্ণনা | সমস্যা সমাধানের নির্দেশাবলী প্রযোজ্য |
---|---|---|
ব্যাকএন্ড সার্ভার থেকে হেডার অনুমতি ছাড়াই 405 প্রতিক্রিয়া | যে ব্যাকএন্ড সার্ভারটি API অনুরোধ প্রক্রিয়া করছে তা Allow হেডার ছাড়াই 405 স্ট্যাটাস কোড দিয়ে সাড়া দেয়। | এজ পাবলিক এবং প্রাইভেট ক্লাউড ব্যবহারকারীরা |
সাধারণ রোগ নির্ণয়ের পদক্ষেপ
এই ত্রুটি নির্ণয় করতে নিম্নলিখিত সরঞ্জাম/কৌশলগুলির মধ্যে একটি ব্যবহার করুন:
API মনিটরিং
API মনিটরিং ব্যবহার করে ত্রুটি নির্ণয় করতে:
- উপযুক্ত ভূমিকা সহ ব্যবহারকারী হিসাবে এজ UI- তে লগ ইন করুন৷
আপনি যে সংস্থায় সমস্যাটি তদন্ত করতে চান সেখানে যান।
- এনালাইজ > API মনিটরিং > ইনভেস্টিগেট পেজে নেভিগেট করুন।
- নির্দিষ্ট সময়সীমা নির্বাচন করুন যেখানে আপনি ত্রুটিগুলি পর্যবেক্ষণ করেছেন।
সময়ের বিরুদ্ধে প্লট ফল্ট কোড ।
একটি সেল নির্বাচন করুন যার ফল্ট কোড
protocol.http.Response405WithoutAllowHeader
আছে।http.Response405WithoutAllowHeader নিচে দেখানো হয়েছে:ফল্ট কোড
protocol.http.Response405WithoutAllowHeader
সম্পর্কে তথ্য নীচে দেখানো হয়েছে:লগ দেখুন ক্লিক করুন এবং আরও তথ্য দেখতে ব্যর্থ অনুরোধগুলির একটি প্রসারিত করুন৷
- লগ উইন্ডো থেকে, নিম্নলিখিত বিবরণ নোট করুন:
- স্ট্যাটাস কোড:
502
- ফল্ট উত্স:
target
- ফল্ট কোড:
protocol.http.Response405WithoutAllowHeader
।
- স্ট্যাটাস কোড:
- যদি ফল্ট সোর্স
target
হয় এবং ফল্ট কোডটি হয়protocol.http.Response405WithoutAllowHeader
, তাহলে এটি নির্দেশ করে যে ব্যাকএন্ড সার্ভারটিAllow
হেডার ছাড়া405 Method Not Allowed
স্ট্যাটাস কোড দিয়ে প্রতিক্রিয়া জানিয়েছে।
ট্রেস টুল
ট্রেস টুল ব্যবহার করে ত্রুটি নির্ণয় করতে:
- ট্রেস সেশন সক্রিয় করুন এবং হয়
-
502 Bad Gateway
ত্রুটি ঘটতে অপেক্ষা করুন, বা - আপনি যদি সমস্যাটি পুনরুত্পাদন করতে পারেন, তাহলে সমস্যাটি পুনরুত্পাদন করতে API কল করুন -
502 Bad Gateway
ত্রুটি
-
সমস্ত ফ্লোইনফোস সক্ষম করা আছে তা নিশ্চিত করুন:
- ব্যর্থ অনুরোধগুলির একটি নির্বাচন করুন এবং ট্রেস পরীক্ষা করুন।
- ট্রেসের বিভিন্ন পর্যায়ে নেভিগেট করুন এবং কোথায় ব্যর্থতা ঘটেছে তা সনাক্ত করুন।
নীচে দেখানো হিসাবে লক্ষ্য সার্ভার পর্বে অনুরোধ পাঠানোর পরে আপনি সাধারণত একটি প্রবাহে ত্রুটিটি খুঁজে পাবেন:
ট্রেস থেকে ত্রুটির মান নোট করুন।
উপরের নমুনা ট্রেসটি
Received 405 Response without Allow Header
হিসাবে ত্রুটি দেখায়। যেহেতু ব্যাকএন্ড সার্ভারে অনুরোধ পাঠানোর পরে Apigee দ্বারা ত্রুটিটি উত্থাপিত হয়েছে, তাই এটি নির্দেশ করে যে ব্যাকএন্ড সার্ভারটিAllow
হেডার ছাড়াই405
প্রতিক্রিয়া স্ট্যাটাস কোড পাঠিয়েছে।- ট্রেসে AX (Analytics Data Recorded) ফেজে নেভিগেট করুন এবং এটিতে ক্লিক করুন।
ফেজ বিশদ প্যানেলে ত্রুটি / প্রতিক্রিয়া শিরোনাম বিভাগে স্ক্রোল করুন এবং নীচে দেখানো হিসাবে 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
সাথে কোনো অনুরোধ এখনও ব্যর্থ হয়েছে কিনা তা দেখতে অনুসন্ধান করুন। আপনি যদি X-Apigee-fault-code-এর সাথে
protocol.http.Response405WithoutAllowHeader
এর মানের সাথে502
টি ত্রুটি খুঁজে পান, তাহলে X-Apigee-ফল্ট-সোর্সের মান নির্ধারণ করুন।NGINX অ্যাক্সেস লগ থেকে নমুনা 502 ত্রুটি:
NGINX অ্যাক্সেস লগ থেকে উপরের নমুনা এন্ট্রিতে X-Apigee- ফল্ট-কোড এবং X-Apigee-ফল্ট-সোর্সের জন্য নিম্নলিখিত মান রয়েছে:
প্রতিক্রিয়া শিরোনাম মান এক্স-অ্যাপিজি-ফল্ট-কোড protocol.http.Response405WithoutAllowHeader
এক্স-অ্যাপিজি-ফল্ট-উৎস target
কারণ: ব্যাকএন্ড সার্ভার থেকে হেডারের অনুমতি ছাড়াই 405 প্রতিক্রিয়া
রোগ নির্ণয়
- এপিআই মনিটরিং, ট্রেস টুল বা এনজিআইএনএক্স অ্যাক্সেস লগ ব্যবহার করে
502 Bad Gateway
জন্য ফল্ট কোড এবং ফল্ট সোর্স নির্ণয় করুন যা সাধারণ রোগ নির্ণয়ের ধাপে ব্যাখ্যা করা হয়েছে। -
Allow
405
কোডprotocol.http.Response405WithoutAllowHeader
target
অতএব, Apigee এরর কোডprotocol.http.Response405WithoutAllowHeader
সহ502 Bad Gateway
সাথে উত্তর দেয়।http.Response405WithoutAllowHeader।
রেজোলিউশন
সমস্যা সমাধানের জন্য নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করুন:
ব্যাকএন্ড সার্ভার
বিকল্প #1: মঞ্জুরি হেডার সহ 405 স্ট্যাটাস কোড পাঠাতে ব্যাকএন্ড সার্ভার ঠিক করুন:
নিশ্চিত করুন যে ব্যাকএন্ড সার্ভার সর্বদা স্পেসিফিকেশন RFC 7231, বিভাগ 6.5.5: 405 পদ্ধতিটি অনুমোদিত নয় এবং
405
স্ট্যাটাস কোডের সাথে পাঠায় যা নীচে দেখানো হেডারের অংশ হিসাবেAllow
পদ্ধতিগুলির তালিকা অন্তর্ভুক্ত করে:Allow: HTTP_METHODS
- উদাহরণস্বরূপ, যদি আপনার ব্যাকএন্ড সার্ভার
GET
,POST
এবংHEAD
পদ্ধতির অনুমতি দেয়, তাহলে আপনাকে নিশ্চিত করতে হবে যেAllow
হেডারে সেগুলি নিম্নরূপ রয়েছে:Allow: GET, POST, HEAD
ফল্ট হ্যান্ডলিং
বিকল্প #2: আপনার API প্রক্সি থেকে Allow হেডার সহ 405 স্ট্যাটাস কোড পাঠাতে ফল্ট হ্যান্ডলিং ব্যবহার করুন:
যদি ব্যাকএন্ড সার্ভার Allow
হেডার ছাড়াই 405
স্ট্যাটাস কোড ফেরত দেয়, তাহলে আপনি 405
স্ট্যাটাস কোডের সাথে প্রতিক্রিয়া জানাতে এবং আপনার API প্রক্সি থেকে 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
http.Response405WithoutAllowHeader-এর সাথে502
ত্রুটি পাওয়ার পরে নীতির আহ্বান জানায়।নমুনা TargetEndpoint কনফিগারেশন FaultRule দেখাচ্ছে:
<TargetEndpoint name="default"> ... <FaultRules> <FaultRule name="405WithoutAllowHeader"> <Step> <Name>AM-405WithAllowHeader</Name> </Step> <Condition>(fault.name = "Response405WithoutAllowHeader")</Condition> </FaultRule> </FaultRules>
- আপনার API প্রক্সির একটি নতুন সংশোধনে এই পরিবর্তনগুলি সংরক্ষণ করুন এবং সংশোধন স্থাপন করুন৷
- API কল করুন এবং যাচাই করুন যে আপনি
405
স্ট্যাটাস কোড পাচ্ছেনAllow
হেডার সহ।
সম্পত্তি কনফিগার করুন
বিকল্প #3: Apigee Edge কে 502 ত্রুটি ফেরানো থেকে আটকাতে মেসেজ প্রসেসরে সম্পত্তি কনফিগার করুন
- আপনি যদি একজন প্রাইভেট ক্লাউড ব্যবহারকারী হন, তাহলে Apigee Edge-কে
502
ত্রুটি বাড়াতে বাধা দিতে আপনিHTTP.ignore.allow_header.for.405
প্রপার্টিটিকেtrue
আপডেট করতে পারেন, এমনকি যদি ব্যাকএন্ড সার্ভারটিAllow
হেডার ব্যবহার না করে405
স্ট্যাটাস কোড দিয়ে সাড়া দেয়। কিভাবে নির্দেশিকা: উপেক্ষা কনফিগার করা হলে বার্তা প্রসেসরে 405 সম্পত্তির জন্য হেডার অনুমতি দেয় । - আপনি যদি একজন পাবলিক ক্লাউড ব্যবহারকারী হন, অনুগ্রহ করে Apigee Edge সাপোর্টের সাথে যোগাযোগ করুন
স্পেসিফিকেশন
Apigee নিম্নোক্ত স্পেসিফিকেশন অনুযায়ী Allow
হেডার সহ ব্যাকএন্ড সার্ভার থেকে 405 Method Not Allowed
প্রতিক্রিয়া আশা করে:
স্পেসিফিকেশন | |
---|---|
RFC 7231, বিভাগ 6.5.5: 405 পদ্ধতি অনুমোদিত নয় | |
RFC 7231, বিভাগ 7.4.1: অনুমতি দিন |
উল্লেখ্য মূল পয়েন্ট
প্রস্তাবিত সমাধান হল 405
স্ট্যাটাস কোড পাঠানোর জন্য ব্যাকএন্ড সার্ভার ঠিক করা Allow
RFC 7231, বিভাগ 6.5.5: 405 পদ্ধতিটি অনুমোদিত নয় ।
আপনার যদি এখনও Apigee সাপোর্ট থেকে কোনো সহায়তার প্রয়োজন হয়, তাহলে অবশ্যই ডায়াগনস্টিক তথ্য সংগ্রহ করুন- এ যান।
ডায়াগনস্টিক তথ্য সংগ্রহ করতে হবে
উপরের নির্দেশাবলী অনুসরণ করার পরেও যদি সমস্যাটি থেকে যায়, তাহলে নিম্নলিখিত ডায়াগনস্টিক তথ্য সংগ্রহ করুন এবং তারপর Apigee Edge সাপোর্টের সাথে যোগাযোগ করুন।
আপনি যদি একজন পাবলিক ক্লাউড ব্যবহারকারী হন, তাহলে নিম্নলিখিত তথ্য প্রদান করুন:
- প্রতিষ্ঠানের নাম
- পরিবেশের নাম
- API প্রক্সি নাম
- সম্পূর্ণ
curl
কমান্ড ত্রুটি কোডprotocol.http.Response405WithoutAllowHeader
সহ502 Bad Gateway
পুনরুত্পাদন করতে ব্যবহৃত হয়।http.Response405WithoutAllowHeader - API অনুরোধের জন্য ট্রেস ফাইল
আপনি যদি একজন ব্যক্তিগত ক্লাউড ব্যবহারকারী হন, তাহলে নিম্নলিখিত তথ্য প্রদান করুন:
- ব্যর্থ অনুরোধের জন্য পরিলক্ষিত সম্পূর্ণ ত্রুটি বার্তা
- পরিবেশের নাম
- API প্রক্সি বান্ডেল
- API অনুরোধের জন্য ট্রেস ফাইল
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