আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
লক্ষণ
ক্লায়েন্ট অ্যাপ্লিকেশনটি এপিআই কলের প্রতিক্রিয়া হিসাবে 502 Bad Gateway HTTP স্ট্যাটাস কোড এবং protocol.http.ResponseWithBody এরর কোড পায়।
ত্রুটি বার্তা
ক্লায়েন্ট অ্যাপ্লিকেশনটি নিম্নলিখিত প্রতিক্রিয়া কোডটি পায়:
HTTP/1.1 502 Bad Gateway
এছাড়াও, আপনি নিম্নলিখিত ত্রুটি বার্তাগুলির মধ্যে একটি দেখতে পারেন:
{
"fault":{
"faultstring":"Received 204 Response with message body",
"detail":{
"errorcode":"protocol.http.ResponseWithBody"
}
}
}{
"fault":{
"faultstring":"Received 205 Response with message body",
"detail":{
"errorcode":"protocol.http.ResponseWithBody"
}
}
}সম্ভাব্য কারণসমূহ
এই ত্রুটিটি ঘটে যদি ব্যাকএন্ড সার্ভার থেকে Apigee Edge-এ আসা HTTP প্রতিক্রিয়াটি 204 No Content বা 205 Reset Content হয়, কিন্তু এতে প্রতিক্রিয়া বডি এবং/অথবা নিম্নলিখিত এক বা একাধিক হেডার থাকে:
-
Content-Length -
Content-Encoding -
Transfer-Encoding
RFC 7231-এর ৬.৩.৫: ২০৪ নো কন্টেন্ট এবং ৬.৩.৬: ২০৫ রিসেট কন্টেন্ট স্পেসিফিকেশন অনুসারে, আশা করা হয় যে অরিজিন সার্ভার থেকে স্ট্যাটাস কোড 204 No Content বা 205 Reset Content সহ রেসপন্স পেলোড বডির অংশ হিসেবে কোনো অতিরিক্ত কন্টেন্ট পাঠানো হবে না। Content-Length , Content-Encoding বা Transfer-Encoding এর মতো রেসপন্স হেডারগুলো রেসপন্স পেলোডের আকার, ধরন বা ফরম্যাট নির্দেশ করে।
অতএব, নিম্নলিখিত পরিস্থিতিতে Apigee Edge ক্লায়েন্টকে এরর কোড protocol.http.ResponseWithBody সহ একটি 502 Bad Gateway স্ট্যাটাস কোড ফেরত পাঠায়:
| ব্যাকএন্ড সার্ভার থেকে স্ট্যাটাস কোড | ||
|---|---|---|
| ব্যাকএন্ড সার্ভার থেকে প্রাপ্ত প্রতিক্রিয়াতে রয়েছে | ২০৪ কোনো বিষয়বস্তু নেই | ২০৫ বিষয়বস্তু রিসেট করুন |
| প্রতিক্রিয়া দেহ | ত্রুটি | ত্রুটি |
(অশূন্যে সেট করা) | ত্রুটি | ত্রুটি |
( Apigee Edge-এ সমর্থিত এনকোডিং -এ সেট করা হয়েছে) | ত্রুটি | কোন ত্রুটি নেই |
Transfer-Encoding | ত্রুটি | ত্রুটি |
এই ত্রুটির সম্ভাব্য কারণগুলো নিচে দেওয়া হলো:
| কারণ | বর্ণনা | সমস্যা সমাধানের নির্দেশাবলী প্রযোজ্য |
|---|---|---|
| ব্যাকএন্ড সার্ভার থেকে 204 রেসপন্সের সাথে রেসপন্স বডি বা হেডার | ব্যাকএন্ড সার্ভার একটি রেসপন্স বডি এবং/অথবা Content-Type , Content-Encoding বা Transfer-Encoding হেডারগুলোর এক বা একাধিকসহ একটি 204 No Content বা 205 Reset Content রেসপন্স পাঠায়। | এজ পাবলিক এবং প্রাইভেট ক্লাউড ব্যবহারকারীরা |
সাধারণ রোগ নির্ণয়ের পদক্ষেপ
এই ত্রুটি নির্ণয় করতে নিম্নলিখিত সরঞ্জাম/কৌশলগুলোর মধ্যে যেকোনো একটি ব্যবহার করুন:
এপিআই মনিটরিং
এপিআই মনিটরিং ব্যবহার করে ত্রুটি নির্ণয় করতে:
- উপযুক্ত ভূমিকা সম্পন্ন একজন ব্যবহারকারী হিসেবে Apigee Edge UI-তে সাইন ইন করুন ।
যে প্রতিষ্ঠানে আপনি বিষয়টি তদন্ত করতে চান, সেখানে যান।

- Analyze > API Monitoring > Investigate পৃষ্ঠায় যান।
- সেই নির্দিষ্ট সময়সীমাটি নির্বাচন করুন যার মধ্যে আপনি ত্রুটিগুলো লক্ষ্য করেছেন।
- সময়ের সাপেক্ষে ফল্ট কোডের লেখচিত্র অঙ্কন করুন।
নিচে দেখানো অনুযায়ী ফল্ট কোড
protocol.http.ResponseWithBodyআছে এমন একটি সেল নির্বাচন করুন:( বড় ছবি দেখুন )

আপনি নিচে দেখানো অনুযায়ী ফল্ট কোড
protocol.http.ResponseWithBodyhttp.ResponseWithBody সম্পর্কিত তথ্য দেখতে পাবেন:( বড় ছবি দেখুন )

'লগ দেখুন'-এ ক্লিক করুন এবং ব্যর্থ অনুরোধটির সারিটি প্রসারিত করুন।
( বড় ছবি দেখুন )

- লগস উইন্ডো থেকে নিম্নলিখিত বিবরণগুলো নোট করুন:
- স্ট্যাটাস কোড:
502 - ত্রুটির উৎস:
target - ত্রুটি কোড:
protocol.http.ResponseWithBody.
- স্ট্যাটাস কোড:
- যদি ফল্ট সোর্সের মান '
targetএবং ফল্ট কোডের মান 'protocol.http.ResponseWithBodyhttp.ResponseWithBody' হয়, তাহলে এটি নির্দেশ করে যে ত্রুটিটি ঘটেছে কারণ ব্যাকএন্ড সার্ভার রেসপন্স বডি এবং/অথবা 'সম্ভাব্য কারণসমূহ' বিভাগে উল্লিখিত হেডারগুলোর কোনো একটির সাথে একটি204 No Contentবা205 Reset Contentস্ট্যাটাস কোড পাঠিয়েছে।
ট্রেস টুল
ট্রেস টুল ব্যবহার করে ত্রুটি নির্ণয় করতে:
- ট্রেস সেশনটি সক্রিয় করুন এবং নিম্নলিখিতগুলির মধ্যে যেকোনো একটি:
-
502 Bad Gatewayত্রুটিটি ঘটার জন্য অপেক্ষা করুন। অথবা - আপনি যদি সমস্যাটি পুনরায় ঘটাতে পারেন, তাহলে এপিআই কলটি করুন এবং
502 Bad Gatewayত্রুটিটি পুনরায় দেখান।
-
নিশ্চিত করুন যে 'Show all FlowInfos' চালু আছে:

- ব্যর্থ হওয়া অনুরোধগুলোর মধ্যে একটি নির্বাচন করুন এবং ট্রেসটি পরীক্ষা করুন।
- ট্রেসের বিভিন্ন ধাপ অতিক্রম করে ত্রুটিটি কোথায় ঘটেছে তা খুঁজে বের করুন।
আপনি সাধারণত টার্গেট সার্ভারে অনুরোধ পাঠানোর ধাপের ঠিক পরেই
flowinfoError)- এ ত্রুটিটি দেখতে পাবেন, যেমনটি নিচে দেখানো হয়েছে:দৃশ্যকল্প #১
দৃশ্যকল্প #১: ব্যাকএন্ড সার্ভার
204 No Contentস্ট্যাটাস কোড দিয়ে সাড়া দেয়, যার রেসপন্স বডিতে এবং/অথবা 'সম্ভাব্য কারণসমূহ' -এ তালিকাভুক্ত হেডারগুলোর মধ্যে একটি থাকে ।
ট্রেস থেকে নিম্নলিখিতগুলির মান লক্ষ্য করুন:
- ত্রুটি:
Received 204 Response with message body - error.class:
com.apigee.rest.framework.BadGateway
দৃশ্যকল্প #২
দৃশ্যকল্প #২: ব্যাকএন্ড সার্ভার
204 No Contentস্ট্যাটাস কোড দিয়ে সাড়া দেয়, যাতে রেসপন্স বডি এবং/অথবা সম্ভাব্য কারণসমূহে তালিকাভুক্ত হেডারগুলোর মধ্যে একটি থাকে।
ট্রেস থেকে নিম্নলিখিতগুলির মান লক্ষ্য করুন:
- ত্রুটি:
Received 205 Response with message body - error.class:
com.apigee.rest.framework.BadGateway
- ত্রুটি:
- ট্রেসটিতে থাকা AX (অ্যানালিটিক্স ডেটা রেকর্ড করা হয়েছে) পর্যায়ে যান এবং এটিতে ক্লিক করুন।
Phase Details , Error Headers সেকশনে স্ক্রল ডাউন করুন এবং নিচে দেখানো অনুযায়ী X-Apigee-fault-code এবং X-Apigee-fault-source- এর মান নির্ধারণ করুন:
( বড় ছবি দেখুন )

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

NGINX অ্যাক্সেস লগ থেকে নেওয়া উপরের নমুনা এন্ট্রিটিতে X-Apigee-fault-code এবং X-Apigee-fault-source এর জন্য নিম্নলিখিত মানগুলি রয়েছে:
প্রতিক্রিয়া হেডার মূল্য এক্স-এপিজি-ফল্ট-কোড protocol.http.ResponseWithBodyএক্স-এপিজি-ফল্ট-সোর্স target- লক্ষ্য করুন যে X-Apigee-fault-code এবং X-Apigee-fault-source- এর মান যথাক্রমে
protocol.http.ResponseWithBodyএবংtarget। এটি নির্দেশ করে যে ত্রুটিটি ঘটেছে কারণ ব্যাকএন্ড সার্ভার রেসপন্স বডি এবং/অথবা সম্ভাব্য কারণসমূহ -এ উল্লিখিত হেডারগুলোর কোনো একটির সাথে একটি204 No Contentবা205 Reset Contentস্ট্যাটাস কোড পাঠিয়েছে।
কারণ: ব্যাকএন্ড সার্ভার থেকে আসা 204 রেসপন্সের সাথে রেসপন্স বডি বা হেডার।
রোগ নির্ণয়
- সাধারণ রোগ নির্ণয়ের ধাপগুলিতে ব্যাখ্যা করা অনুযায়ী API মনিটরিং, ট্রেস টুল বা NGINX অ্যাক্সেস লগ ব্যবহার করে পরিলক্ষিত ত্রুটির জন্য ফল্ট কোড এবং ফল্ট সোর্স নির্ধারণ করুন।
- যদি ফল্ট কোডটি
protocol.http.ResponseWithBodyহয় এবং ফল্ট সোর্সের মানtargetহয়, তাহলে এটি নির্দেশ করে যে ব্যাকএন্ড সার্ভারটি204 No Contentঅথবা205 Reset Contentস্ট্যাটাস কোডসহ রেসপন্স বডি এবং/অথবা সম্ভাব্য কারণসমূহে উল্লিখিত হেডারগুলোর কোনো একটি দিয়ে সাড়া দিয়েছে। ব্যাকএন্ড সার্ভারটি সত্যিই একটি রেসপন্স পেলোড বডি এবং/অথবা 'সম্ভাব্য কারণসমূহ' -এ উল্লিখিত এক বা একাধিক হেডার পাঠিয়েছে কিনা তা যাচাই করতে, আপনি নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করতে পারেন:
আপনি যদি একজন পাবলিক ক্লাউড ব্যবহারকারী হন এবং আপনার যেকোনো সিস্টেম থেকে সরাসরি ব্যাকএন্ড সার্ভারে একই এপিআই অনুরোধ পাঠাতে পারেন।
- আপনি যদি একজন প্রাইভেট ক্লাউড ব্যবহারকারী হন, তাহলে যে নির্দিষ্ট সংস্থা এবং পরিবেশে ব্যর্থতাটি পরিলক্ষিত হয়েছে, তার সাথে যুক্ত মেসেজ প্রসেসরগুলোর যেকোনো একটি থেকে সরাসরি ব্যাকএন্ড সার্ভারে একই এপিআই অনুরোধটি করতে পারেন।
ব্যাকএন্ড সার্ভার থেকে প্রাপ্ত প্রতিক্রিয়াটি পর্যালোচনা করুন এবং যাচাই করুন যে এতে একটি রেসপন্স পেলোড বডি এবং/অথবা উপরে উল্লিখিত হেডারগুলির এক বা একাধিক রয়েছে কিনা। যদি থাকে, তাহলে সেটাই এই ত্রুটির কারণ।
নমুনা #১
নমুনা #১: Content-Encoding হেডার সহ ব্যাকএন্ড সার্ভারের 204 প্রতিক্রিয়া
curl -v "https://BACKEND_SERVER_HOST_NAME/PATH" -H "HEADER: VALUE" -X HTTP_REQUEST_METHOD
… < HTTP/1.1 204 No Content
< Content-Encoding: gzip< Date: Tue, 31 Jul 2021 21:41:13 GMT < Connection: keep-aliveএই নমুনায়, ব্যাকএন্ড সার্ভারটি
204 No Contentস্ট্যাটাস কোড এবংContent-Encoding: gzipদিয়ে সাড়া দিয়েছে।নমুনা #২
নমুনা #২: কন্টেন্ট-লেংথ হেডার সহ ব্যাকএন্ড সার্ভারের ২০৪ রেসপন্স
curl -v "https://BACKEND_SERVER_HOST_NAME/PATH" -H "HEADER: VALUE" -X HTTP_REQUEST_METHOD
… < HTTP/1.1 204 No Content
< Content-Length: 48< Date: Tue, 31 Jul 2021 21:41:13 GMT < Connection: keep-aliveএই নমুনায়, ব্যাকএন্ড সার্ভারটি
204 No Contentস্ট্যাটাস কোড এবংContent-Length: 48দিয়ে সাড়া দিয়েছে।নমুনা #৩
নমুনা #৩: রেসপন্স বডিসহ ব্যাকএন্ড সার্ভারের রেসপন্স ২০৫
curl -v "https://BACKEND_SERVER_HOST_NAME/PATH" -H "HEADER: VALUE" -X HTTP_REQUEST_METHOD
… < HTTP/1.1 205 Reset Content < Date: Sat, 31 Jul 2021 17:14:09 GMT < Content-Length: 12 < Content-Type: text/plain; charset=utf-8 < * Connection #0 to host X.X.X.X left intact
This is a sample Responseএই নমুনায়, ব্যাকএন্ড সার্ভারটি
205 Reset Contentস্ট্যাটাস কোড এবংThis is a sample Response.- উপরের সমস্ত উদাহরণে, ব্যাকএন্ড সার্ভারটি রেসপন্স বডি এবং/অথবা 'সম্ভাব্য কারণসমূহ' -এ উল্লিখিত হেডারগুলোর কোনো একটির সাথে
204 No Contentঅথবা205 Reset Contentস্ট্যাটাস কোড পাঠিয়েছে। - তাই, Apigee Edge এরর কোড
protocol.http.ResponseWithBodyসহ502 Bad Gatewayস্ট্যাটাস কোড পাঠিয়েছে।
সমাধান
Apigee Edge-কে 204 No Content বা 205 Reset Content Reset Content রেসপন্স পাঠানোর সময়, ব্যাকএন্ড সার্ভার যেন সর্বদা স্পেসিফিকেশন RFC 7231-এর 6.3.6: 205 Reset Content সেকশনটি মেনে চলে, তা নিশ্চিত করুন। অর্থাৎ, ব্যাকএন্ড সার্ভার 204 No Content বা 205 Reset Content রেসপন্সের অংশ হিসেবে নিম্নলিখিতটি অবশ্যই পাঠাবে না :
- প্রতিক্রিয়া পেলোড বডি
- এবং নিম্নলিখিত হেডারগুলির যেকোনো একটি:
-
Content-Length -
Content-Encoding -
Transfer-Encoding
-
স্পেসিফিকেশন
যদি ব্যাকএন্ড সার্ভার একটি 204 No Content বা 205 Reset Content রেসপন্স পাঠায় কিন্তু নিম্নলিখিত RFC স্পেসিফিকেশনগুলো মেনে না চলে, তাহলে Apigee Edge 502 Bad Gateway স্ট্যাটাস কোড এবং error code protocol.http.ResponseWithBody দিয়ে সাড়া দেয়।
| স্পেসিফিকেশন |
|---|
| আরএফসি ৭২৩১, ধারা ৬.৩.৫: ২০৪ কোনো বিষয়বস্তু নেই |
| আরএফসি ৭২৩১, ধারা ৬.৩.৬: ২০৫ বিষয়বস্তু রিসেট করুন |
লক্ষণীয় গুরুত্বপূর্ণ বিষয়সমূহ
সুপারিশকৃত সমাধান হলো ব্যাকএন্ড সার্ভারকে এমনভাবে ঠিক করা যাতে এটি রেসপন্স বডি এবং Content-Length , Content-Encoding , ও Transfer-Encoding মতো কোনো হেডার ছাড়াই 204 No Content এবং 205 Reset Content স্ট্যাটাস কোড পাঠায় এবং RFC 7231, সেকশন 6.3.5: 204 No Content ও RFC 7231, সেকশন 6.3.6: 205 Reset Content স্পেসিফিকেশনগুলো মেনে চলে।
আপনার যদি এখনও Apigee Support-এর কাছ থেকে কোনো সাহায্যের প্রয়োজন হয়, তাহলে Must gather diagnostic information- এ যান।
রোগ নির্ণয়ের তথ্য অবশ্যই সংগ্রহ করতে হবে
নিম্নলিখিত ডায়াগনস্টিক তথ্য সংগ্রহ করুন, এবং তারপর Apigee Edge Support-এর সাথে যোগাযোগ করুন:
আপনি যদি পাবলিক ক্লাউড ব্যবহারকারী হন, তাহলে নিম্নলিখিত তথ্যগুলো প্রদান করুন:
- সংস্থার নাম
- পরিবেশের নাম
- এপিআই প্রক্সি নাম
-
502ত্রুটিটি পুনরুৎপাদন করতে ব্যবহৃত সম্পূর্ণcurlকমান্ড। - এপিআই অনুরোধগুলির ট্রেস ফাইল
আপনি যদি একজন প্রাইভেট ক্লাউড ব্যবহারকারী হন, তাহলে নিম্নলিখিত তথ্যগুলো প্রদান করুন:
- ব্যর্থ অনুরোধগুলির জন্য সম্পূর্ণ ত্রুটি বার্তা পরিলক্ষিত হয়েছে।
- পরিবেশের নাম
- এপিআই প্রক্সি বান্ডেল
- এপিআই অনুরোধগুলির ট্রেস ফাইল
NGINX অ্যাক্সেস লগ
/opt/apigee/var/log/edge-router/nginx/ ORG ~ ENV . PORT# _access_logযেখানে: ORG , ENV এবং PORT# প্রকৃত মান দ্বারা প্রতিস্থাপিত হয়।
- মেসেজ প্রসেসর সিস্টেম লগ
/opt/apigee/var/log/edge-message-processor/logs/system.log