আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন .info- তে যান।
লক্ষণ
ক্লায়েন্ট অ্যাপ্লিকেশনটি এপিআই কলের প্রতিক্রিয়া হিসাবে protocol.http.TooBigHeaders এরর কোড সহ 431 Request Header Fields Too Large নামক একটি HTTP স্ট্যাটাস কোড পায়।
ত্রুটির বার্তা
ক্লায়েন্ট অ্যাপ্লিকেশনটি নিম্নলিখিত প্রতিক্রিয়া কোডটি পায়:
HTTP/1.1 431 Request Header Fields Too Large
এছাড়াও, আপনি নিম্নলিখিত ত্রুটি বার্তাটি দেখতে পারেন:
{
"fault":{
"faultstring":"request headers size exceeding 25,600",
"detail":{
"errorcode":"protocol.http.TooBigHeaders"
}
}
}সম্ভাব্য কারণসমূহ
RFC 6585, সেকশন 5: 431 Request Header Fields Too Large অনুযায়ী, ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা HTTP অনুরোধের অংশ হিসাবে Apigee Edge-এ পাঠানো সমস্ত অনুরোধ হেডারের মোট আকার যদি Apigee Edge-এ অনুমোদিত সীমার চেয়ে বেশি হয়, তাহলে এই ত্রুটিটি ঘটে।
এই ত্রুটির সম্ভাব্য কারণগুলো নিচে দেওয়া হলো:
| কারণ | বর্ণনা | সমস্যা সমাধানের নির্দেশাবলী প্রযোজ্য |
|---|---|---|
| অনুরোধ হেডারের আকার অনুমোদিত সীমার চেয়ে বড় | ক্লায়েন্ট অ্যাপ্লিকেশন কর্তৃক Apigee Edge-এ পাঠানো HTTP অনুরোধের অংশ হিসেবে সমস্ত হেডারের মোট আকার Apigee Edge-এ অনুমোদিত সীমার চেয়ে বেশি। | এজ পাবলিক এবং প্রাইভেট ক্লাউড ব্যবহারকারীরা |
সাধারণ রোগ নির্ণয়ের পদক্ষেপ
এই ত্রুটি নির্ণয় করতে নিম্নলিখিত সরঞ্জাম/কৌশলগুলোর মধ্যে যেকোনো একটি ব্যবহার করুন:
এপিআই মনিটরিং
এপিআই মনিটরিং ব্যবহার করে ত্রুটি নির্ণয় করতে:
- উপযুক্ত ভূমিকা সম্পন্ন একজন ব্যবহারকারী হিসেবে Apigee Edge UI-তে সাইন ইন করুন ।
যে প্রতিষ্ঠানে আপনি বিষয়টি তদন্ত করতে চান, সেখানে যান।

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

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

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

লগস উইন্ডো থেকে নিম্নলিখিত বিবরণগুলো নোট করুন:
- স্ট্যাটাস কোড:
431 - ত্রুটির উৎস:
apigee - ত্রুটি কোড:
protocol.http.TooBigHeaders. - অনুরোধের দৈর্ঘ্য (বাইট):
32150 (> 25 KB)
- স্ট্যাটাস কোড:
- যদি ফল্ট সোর্সের মান
apigeeবাMPহয়, ফল্ট কোডের মানprotocol.http.TooBigHeadersহয় এবং রিকোয়েস্ট লেংথ ২৫ কেবি-র বেশি হয়, তাহলে এটি নির্দেশ করে যে ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা HTTP রিকোয়েস্টের অংশ হিসেবে পাঠানো সমস্ত রিকোয়েস্ট হেডারের মোট আকার Apigee-তে অনুমোদিত সীমার চেয়ে বেশি।
ট্রেস টুল
এনজিআইএনএক্স
NGINX অ্যাক্সেস লগ ব্যবহার করে ত্রুটি নির্ণয় করতে:
- আপনি যদি একজন প্রাইভেট ক্লাউড ব্যবহারকারী হন, তাহলে HTTP
431ত্রুটি সম্পর্কিত মূল তথ্য নির্ধারণ করতে NGINX অ্যাক্সেস লগ ব্যবহার করতে পারেন। NGINX অ্যাক্সেস লগগুলি পরীক্ষা করুন:
/opt/apigee/var/log/edge-router/nginx/ ORG ~ ENV . PORT# _access_logযেখানে: ORG , ENV , এবং PORT# প্রকৃত মান দ্বারা প্রতিস্থাপিত হয়।
- একটি নির্দিষ্ট সময়কালে কোনো
431ত্রুটি ছিল কিনা (যদি সমস্যাটি অতীতে ঘটে থাকে) অথবা এখনও কোনো অনুরোধ431ত্রুটির কারণে ব্যর্থ হচ্ছে কিনা তা অনুসন্ধান করে দেখুন। যদি আপনি
protocol.http.TooBigHeadersএর মানের সাথে মিলে যাওয়া X-Apigee-fault-code সহ কোনো431ত্রুটি খুঁজে পান, তাহলে X-Apigee-fault-source-এর মান নির্ধারণ করুন।
NGINX অ্যাক্সেস লগ থেকে নেওয়া উপরের নমুনা এন্ট্রিটিতে X-Apigee-fault-code এবং X-Apigee-fault-source-এর জন্য নিম্নলিখিত মানগুলি রয়েছে:
প্রতিক্রিয়া হেডার মূল্য এক্স-এপিজি-ফল্ট-কোড protocol.http.TooBigHeadersএক্স-এপিজি-ফল্ট-সোর্স MPঅনুরোধের দৈর্ঘ্যটি লক্ষ্য করুন:
40159(৪০ কেবি, Apigee Edge-এ অনুরোধ হেডারের অনুমোদিত সীমা ২৫ কেবি-র চেয়ে বেশি)।উপরের নমুনা লগ এন্ট্রিতে, X-Apigee-fault-source-এর মান হলো
apigeeorMP, X-Apigee-fault-code-এর মান হলোprotocol.http.TooBigHeadersএবং Request Length হলো 40 KB, যা Apigee-তে অনুমোদিত সীমা 25 KB-এর চেয়ে বেশি। এটি স্পষ্টভাবে নির্দেশ করে যে, HTTP অনুরোধের অংশ হিসেবে ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা প্রেরিত সমস্ত অনুরোধ হেডারের মোট আকার Apigee Edge-এর 25 KB-এর অনুমোদিত সীমা অতিক্রম করেছে।
কারণ: অনুরোধ হেডারের আকার অনুমোদিত সীমার চেয়ে বড়
রোগ নির্ণয়
- সাধারণ রোগ নির্ণয়ের ধাপগুলিতে ব্যাখ্যা করা অনুযায়ী API মনিটরিং অথবা NGINX অ্যাক্সেস লগ ব্যবহার করে পরিলক্ষিত ত্রুটির জন্য ফল্ট কোড , ফল্ট সোর্স এবং রিকোয়েস্ট-লেংথ সাইজ নির্ধারণ করুন।
- যদি ফল্ট সোর্সের মান
apigeeবাMPহয়, ফল্ট কোডের মানprotocol.http.TooBigHeadersহয় এবং রিকোয়েস্ট লেংথ ২৫ কেবি-র বেশি হয়, তাহলে এটি নির্দেশ করে যে ক্লায়েন্ট অ্যাপ্লিকেশন কর্তৃক Apigee-তে পাঠানো রিকোয়েস্টের আকার Apigee Edge-এ অনুমোদিত সীমার চেয়ে বেশি। - নিম্নলিখিত পদ্ধতিগুলোর যেকোনো একটি ব্যবহার করে আপনি যাচাই করতে পারেন যে রিকোয়েস্ট হেডারের সাইজ অনুমোদিত ২৫ কেবি সীমা অতিক্রম করেছে কিনা:
ত্রুটির বার্তা
ত্রুটির বার্তা ব্যবহার করে যাচাই করতে:
আপনার কাছে যদি Apigee Edge থেকে প্রাপ্ত সম্পূর্ণ এরর মেসেজটি থাকে, তাহলে
faultstringটি দেখুন।faultstringটি নির্দেশ করে যে Request Headers-এর মোট সাইজ ২৫ KB-এর অনুমোদিত সীমা অতিক্রম করেছে।নমুনা ত্রুটি বার্তা:
"faultstring":"request headers size exceeding 25,600"
প্রকৃত অনুরোধ
প্রকৃত অনুরোধ ব্যবহার করে যাচাই করতে:
ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা করা প্রকৃত অনুরোধটি যদি আপনার কাছে থাকে, তাহলে নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করুন:
- অনুরোধে পাঠানো হেডারগুলোর আকার যাচাই করুন।
যদি আপনি Apigee Edge-এ হেডারগুলোর মোট আকার অনুমোদিত সীমার চেয়ে বেশি দেখতে পান, তাহলে সেটাই সমস্যার কারণ।
নমুনা অনুরোধ:
curl -v https://HOSTALIAS/test -H "header0: 000000000000000000……..000000<trimmed>" -H "header1: 111111111111111111……..111111<trimmed>" -H "header2: 222222222222222222……..222222<trimmed>"-H "header3: 333333333333333333……..333333<trimmed>"
উপরোক্ত ক্ষেত্রে,
header0,header1,header2এবংheader3হেডারগুলোর মোট আকার 25 KB-এর বেশি, অর্থাৎ, এতে 25 K-এর বেশি ASCII অক্ষর (বাইট) রয়েছে।আপনি যদি অন্য কোনো ক্লায়েন্ট ব্যবহার করেন, তাহলে ক্লায়েন্ট লগগুলো পর্যালোচনা করে Apigee Edge-এ পাঠানো রিকোয়েস্ট লাইনের সাইজ খুঁজে বের করার চেষ্টা করতে পারেন।
মেসেজ প্রসেসর লগ
মেসেজ প্রসেসর লগ ব্যবহার করে যাচাই করতে:
আপনি যদি একজন প্রাইভেট ক্লাউড ব্যবহারকারী হন, তাহলে Apigee Edge-এ রিকোয়েস্ট হেডারের আকার অনুমোদিত সীমা অতিক্রম করেছে কিনা তা যাচাই করতে মেসেজ প্রসেসর লগ ব্যবহার করতে পারেন।
মেসেজ প্রসেসর লগগুলো পরীক্ষা করুন:
/opt/apigee/var/log/edge-message-processor/logs/system.log- একটি নির্দিষ্ট সময়কালে কোনো
431ত্রুটি ছিল কিনা (যদি সমস্যাটি অতীতে ঘটে থাকে) অথবা এখনও কোনো অনুরোধ431ত্রুটির কারণে ব্যর্থ হচ্ছে কিনা তা অনুসন্ধান করুন। আপনি নিম্নলিখিত সার্চ স্ট্রিংগুলি ব্যবহার করতে পারেন।grep -ri "exceeding"
grep -ri "RequestHeadersTooLarge"
- আপনি
system.logএ নিম্নলিখিতগুলির মতো লাইন খুঁজে পাবেন:2021-07-27 08:30:28,419 NIOThread@1 ERROR ADAPTORS.HTTP.FLOW - AbstractRequestListener.onException() : Request:GET, uri:/test/, message Id:null, exception:com.apigee.errors.http.user.RequestHeadersTooLarge{ code = protocol.http.TooBigHeaders, message = request headers size exceeding 25,600, associated contexts = []}, context:Context@9c5903 input=ClientInputChannel(SSLClientChannel[Accepted: Remote:192.168.205.251:8443 Local:192.168.67.23:22188]@25130 useCount=1 bytesRead=0 bytesWritten=15367 age=667062ms lastIO=0ms isOpen=true)
উপরের এরর মেসেজে থাকা
message = request headers size exceeding 25,600নির্দেশ করে যে, মোট রিকোয়েস্ট হেডারের সাইজ ২৫ কেবি-র বেশি। তাই, Apigee Edge ক্লায়েন্ট অ্যাপ্লিকেশনগুলোতেcom.apigee.errors.http.user.RequestHeadersTooLargeএক্সেপশনটি থ্রো করে এবংprotocol.http.TooBigHeadersফল্ট কোডসহ431স্ট্যাটাস কোড রিটার্ন করে।
সমাধান
নির্দিষ্ট আকার
বিকল্প #১ [সুপারিশকৃত]: ক্লায়েন্ট অ্যাপ্লিকেশনটিকে এমনভাবে ঠিক করুন যাতে এটি অনুমোদিত সীমার চেয়ে বেশি মোট আকারের অনুরোধ হেডার না পাঠায়।
- নির্দিষ্ট ক্লায়েন্টটি কেন বড় আকারের রিকোয়েস্ট হেডার পাঠাচ্ছে, যার ফলে মোট হেডারের আকার 'লিমিটস' -এ সংজ্ঞায়িত অনুমোদিত সীমা অতিক্রম করে যাচ্ছে, তার কারণ বিশ্লেষণ করুন।
যদি এটি অনাকাঙ্ক্ষিত হয়, তবে আপনার ক্লায়েন্ট অ্যাপ্লিকেশনটি এমনভাবে পরিবর্তন করুন যাতে এটি অনুমোদিত সীমার চেয়ে কম আকারের রিকোয়েস্ট হেডার পাঠায়।
উপরে আলোচিত উদাহরণে, আপনি রিকোয়েস্ট বডি/পে-লোডের অংশ হিসেবে long হেডার ভ্যালু প্যারামিটারটি পাস করে সমস্যাটি সমাধান করতে পারেন:
curl -v https://HOSTALIAS/test -d '{ "header0: 000000000000000000……..000000<trimmed>" , "header1: 111111111111111111……..111111<ttrimmed>" , "header2: 222222222222222222……..222222<ttrimmed>", "header3: 333333333333333333……..333333<ttrimmed>" }'- যদি প্রয়োজন হয় এবং আপনি অনুমোদিত সীমার চেয়ে বেশি হেডার পাঠাতে চান, তাহলে পরবর্তী অপশনে যান।
সিডব্লিউসি
বিকল্প #২ : অনুরোধ লাইনের সীমা বাড়াতে CwC প্রপার্টি ব্যবহার করুন
Apigee একটি CwC প্রপার্টি প্রদান করে যা রিকোয়েস্ট লাইন সাইজের সীমা বাড়াতে সাহায্য করে। বিস্তারিত জানতে, মেসেজ প্রসেসরে রিকোয়েস্ট লাইন লিমিট সেট করা দেখুন।
সীমা
Apigee আশা করে যে ক্লায়েন্ট অ্যাপ্লিকেশন এবং ব্যাকএন্ড সার্ভার এমন কোনো Request/Response Header পাঠাবে না, যার আকার Apigee Edge Limits- এ নথিভুক্ত Request/Response Header Size Limit-এ উল্লিখিত অনুমোদিত সীমার চেয়ে বড়।
- আপনি যদি একজন পাবলিক ক্লাউড ব্যবহারকারী হন, তাহলে রিকোয়েস্ট এবং রেসপন্স হেডারের আকারের সর্বোচ্চ সীমা Apigee Edge Limits- এ উল্লেখিত নিয়ম অনুযায়ী হবে।
- আপনি যদি একজন প্রাইভেট ক্লাউড ব্যবহারকারী হন, তাহলে আপনি হয়তো রিকোয়েস্ট এবং রেসপন্স হেডারের আকারের ডিফল্ট সর্বোচ্চ সীমা পরিবর্তন করে থাকতে পারেন (যদিও এটি একটি অনুচিত কাজ)। ‘বর্তমান সীমা কীভাবে পরীক্ষা করবেন’ অংশে দেওয়া নির্দেশাবলী অনুসরণ করে আপনি রিকোয়েস্ট হেডারের সর্বোচ্চ আকারের সীমা নির্ধারণ করতে পারেন।
বর্তমান সীমা কীভাবে পরীক্ষা করবেন?
এই অংশে ব্যাখ্যা করা হয়েছে কিভাবে যাচাই করতে হয় যে মেসেজ প্রসেসরগুলিতে HTTPRequest.headers.limit প্রপার্টিটি একটি নতুন মান দ্বারা আপডেট করা হয়েছে।
- মেসেজ প্রসেসর মেশিনে,
/opt/apigee/edge-message-processor/confডিরেক্টরিতেHTTPRequest.headers.limitপ্রপার্টিটি খুঁজুন এবং নিচে দেখানো অনুযায়ী কী ভ্যালু সেট করা হয়েছে তা পরীক্ষা করে দেখুন:grep -ri "HTTPRequest.headers.limit" /opt/apigee/edge-message-processor/conf
- উপরোক্ত কমান্ড থেকে প্রাপ্ত নমুনা ফলাফলটি নিম্নরূপ:
/opt/apigee/edge-message-processor/conf/http.properties:HTTPRequest.headers.limit=25k
উপরের উদাহরণ আউটপুটে লক্ষ্য করুন যে,
http.propertiesফাইলেHTTPRequest.headers.limitপ্রপার্টিটির মান25kসেট করা হয়েছে।এর থেকে বোঝা যায় যে, Apigee for Private Cloud-এ কনফিগার করা রিকোয়েস্ট হেডার সাইজের সীমা হলো ২৫ কেবি।
স্পেসিফিকেশন
Apigee Edge আশা করে যে ক্লায়েন্ট অ্যাপ্লিকেশনটি অনুরোধের অংশ হিসেবে বড় আকারের হেডার পাঠাবে না। যদি অনুরোধে নির্দিষ্ট সীমার চেয়ে বেশি আকারের হেডার থাকে, তাহলে Apigee নিম্নলিখিত RFC স্পেসিফিকেশন অনুযায়ী 431 Request Header Fields Too Large ত্রুটি দেখায়:
| স্পেসিফিকেশন |
|---|
| RFC 6585, ধারা ৫: ৪৩১ অনুরোধ হেডার ফিল্ডগুলি খুব বড় |
আপনার যদি এখনও Apigee Support-এর কাছ থেকে কোনো সাহায্যের প্রয়োজন হয়, তাহলে Must gather diagnostic information- এ যান।
রোগ নির্ণয়ের তথ্য অবশ্যই সংগ্রহ করতে হবে
নিম্নলিখিত ডায়াগনস্টিক তথ্য সংগ্রহ করুন, এবং তারপর Apigee Edge Support-এর সাথে যোগাযোগ করুন:
আপনি যদি পাবলিক ক্লাউড ব্যবহারকারী হন, তাহলে নিম্নলিখিত তথ্যগুলো প্রদান করুন:
- সংস্থার নাম
- পরিবেশের নাম
- এপিআই প্রক্সি নাম
-
431ত্রুটিটি পুনরুৎপাদন করতে ব্যবহৃত সম্পূর্ণcurlকমান্ড। - এপিআই অনুরোধগুলির ট্রেস ফাইল
আপনি যদি একজন প্রাইভেট ক্লাউড ব্যবহারকারী হন, তাহলে নিম্নলিখিত তথ্যগুলো প্রদান করুন:
- ব্যর্থ অনুরোধগুলির জন্য সম্পূর্ণ ত্রুটি বার্তা পরিলক্ষিত হয়েছে।
- সংস্থার নাম
- পরিবেশের নাম
- এপিআই প্রক্সি বান্ডেল
- ব্যর্থ হওয়া এপিআই অনুরোধগুলির ট্রেস ফাইল
-
431ত্রুটিটি পুনরুৎপাদন করতে ব্যবহৃত সম্পূর্ণ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