431 অনুরোধ শিরোনাম ক্ষেত্রগুলি খুব বড় - TooBigHeaders৷

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান
তথ্য

উপসর্গ

ক্লায়েন্ট অ্যাপ্লিকেশনটি API কলগুলির প্রতিক্রিয়া হিসাবে ত্রুটি কোড protocol.http.TooBigHeaders সহ 431 Request Header Fields Too Large একটি HTTP স্ট্যাটাস কোড পায়।http.TooBigHeaders।

ত্রুটি বার্তা

ক্লায়েন্ট অ্যাপ্লিকেশন নিম্নলিখিত প্রতিক্রিয়া কোড পায়:

HTTP/1.1 431 Request Header Fields Too Large

উপরন্তু, আপনি নিম্নলিখিত ত্রুটি বার্তা পর্যবেক্ষণ করতে পারেন:

{
   "fault":{
      "faultstring":"request headers size exceeding 25,600",
      "detail":{
         "errorcode":"protocol.http.TooBigHeaders"
      }
   }
}

সম্ভাব্য কারণ

HTTP অনুরোধের অংশ হিসাবে Apigee Edge-এ ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা পাঠানো সমস্ত অনুরোধ শিরোনামের মোট আকার RFC 6585, বিভাগ 5: 431 অনুচ্ছেদ 5: 431 শিরোনামের ক্ষেত্রগুলি খুব বড় অনুসারে Apigee এজে অনুমোদিত সীমার চেয়ে বেশি হলে এই ত্রুটিটি ঘটে।

এই ত্রুটির সম্ভাব্য কারণগুলি এখানে রয়েছে:

কারণ বর্ণনা সমস্যা সমাধানের নির্দেশাবলী প্রযোজ্য
অনুরোধ শিরোনাম আকার অনুমোদিত সীমা থেকে বড় Apigee Edge-এ HTTP অনুরোধের অংশ হিসাবে ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা পাঠানো সমস্ত হেডারের মোট আকার Apigee Edge-এ অনুমোদিত সীমার চেয়ে বেশি। এজ পাবলিক এবং প্রাইভেট ক্লাউড ব্যবহারকারীরা

সাধারণ রোগ নির্ণয়ের পদক্ষেপ

এই ত্রুটি নির্ণয় করতে নিম্নলিখিত সরঞ্জাম/কৌশলগুলির মধ্যে একটি ব্যবহার করুন:

API মনিটরিং

API মনিটরিং ব্যবহার করে ত্রুটি নির্ণয় করতে:

  1. Apigee Edge UI এ একটি উপযুক্ত ভূমিকা সহ ব্যবহারকারী হিসাবে সাইন ইন করুন৷
  2. আপনি যে সংস্থায় সমস্যাটি তদন্ত করতে চান সেখানে যান।

  3. এনালাইজ > API মনিটরিং > ইনভেস্টিগেট পেজে নেভিগেট করুন।
  4. নির্দিষ্ট সময়সীমা নির্বাচন করুন যেখানে আপনি ত্রুটিগুলি পর্যবেক্ষণ করেছেন।
  5. সময়ের বিরুদ্ধে প্লট ফল্ট কোড
  6. ফল্ট কোড protocol.http.TooBigHeaders আছে এমন একটি সেল নির্বাচন করুন 431

    ( বড় ছবি দেখুন )

  7. আপনি ফল্ট কোড protocol.http.TooBigHeaders সম্পর্কে তথ্য দেখতে পাবেন। http.TooBigHeaders নীচে দেখানো হয়েছে:

    ( বড় ছবি দেখুন )

  8. লগ দেখুন ক্লিক করুন এবং ব্যর্থ অনুরোধের জন্য সারিটি প্রসারিত করুন:

    ( বড় ছবি দেখুন )

  9. লগ উইন্ডো থেকে, নিম্নলিখিত বিবরণ নোট করুন:

    • স্ট্যাটাস কোড: 431
    • ফল্ট উত্স: apigee
    • ফল্ট কোড: protocol.http.TooBigHeaders
    • অনুরোধের দৈর্ঘ্য(বাইট): 32150 (> 25 KB)
  10. যদি ফল্ট সোর্সের মান apigee বা MP থাকে, ফল্ট কোডের মান protocol.http.TooBigHeaders থাকে Apigee-তে অনুমোদিত সীমার চেয়ে বেশি অনুরোধ

ট্রেস টুল

এনজিআইএনএক্স

NGINX অ্যাক্সেস লগ ব্যবহার করে ত্রুটি নির্ণয় করতে:

  1. আপনি যদি একজন ব্যক্তিগত ক্লাউড ব্যবহারকারী হন, তাহলে আপনি HTTP 431 ত্রুটি সম্পর্কে মূল তথ্য নির্ধারণ করতে NGINX অ্যাক্সেস লগ ব্যবহার করতে পারেন।
  2. NGINX অ্যাক্সেস লগগুলি পরীক্ষা করুন:

    /opt/apigee/var/log/edge-router/nginx/ ORG ~ ENV . PORT# _access_log

    যেখানে: ORG , ENV , এবং PORT# প্রকৃত মান দিয়ে প্রতিস্থাপিত হয়৷

  3. একটি নির্দিষ্ট সময়কালের মধ্যে (যদি সমস্যাটি অতীতে ঘটে থাকে) কোন 431 ত্রুটি আছে কিনা বা 431 এর সাথে কোন অনুরোধ এখনও ব্যর্থ হয়েছে কিনা তা দেখতে অনুসন্ধান করুন।
  4. আপনি যদি X-Apigee-fault-code-এর সাথে protocol.http.TooBigHeaders এর মানের সাথে 431 টি ত্রুটি খুঁজে পান, তাহলে X-Apigee-ফল্ট-সোর্সের মান নির্ধারণ করুন।

    NGINX অ্যাক্সেস লগ থেকে উপরের নমুনা এন্ট্রিতে X-Apigee-fault-code এবং X-Apigee-fault-source এর জন্য নিম্নলিখিত মান রয়েছে:

    প্রতিক্রিয়া শিরোনাম মান
    এক্স-অ্যাপিজি-ফল্ট-কোড protocol.http.TooBigHeaders
    এক্স-অ্যাপিজি-ফল্ট-উৎস MP

    অনুরোধের দৈর্ঘ্য নোট করুন: 40159 (40 KB 25 KB-এর চেয়ে বেশি, Apigee Edge-এ অনুরোধ শিরোনামের জন্য অনুমোদিত সীমা)

    উপরের নমুনা লগ এন্ট্রিতে, X-Apigee-fault-source এর মান apigee বা MP আছে, X-Apigee-ফল্ট-কোডের মান protocol.http.TooBigHeaders রয়েছে। Apigee-এ অনুমোদিত সীমা - 25 KB। এটি স্পষ্টভাবে নির্দেশ করে যে HTTP অনুরোধের অংশ হিসাবে ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা পাঠানো সমস্ত অনুরোধ শিরোনামের মোট আকার Apigee এজ-এ অনুমোদিত 25 KB-এর সীমা অতিক্রম করেছে৷

কারণ: অনুরোধ শিরোনামের আকার অনুমোদিত সীমার চেয়ে বেশি

রোগ নির্ণয়

  1. এপিআই মনিটরিং বা এনজিআইএনএক্স অ্যাক্সেস লগ ব্যবহার করে দেখা ত্রুটির জন্য ফল্ট কোড , ফল্ট সোর্স এবং অনুরোধ-দৈর্ঘ্যের আকার নির্ধারণ করুন, যেমন সাধারণ নির্ণয়ের ধাপে ব্যাখ্যা করা হয়েছে।
  2. যদি ফল্ট সোর্সের মান apigee বা MP থাকে, ফল্ট কোডের মান protocol.http.TooBigHeaders থাকে Apigee প্রান্তে অনুমোদিত সীমা
  3. আপনি যাচাই করতে পারেন যে অনুরোধ শিরোনামের আকার নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করে অনুমোদিত সীমা 25 KB অতিক্রম করেছে:

    ত্রুটি বার্তা

    ত্রুটি বার্তা ব্যবহার করে যাচাই করতে:

    Apigee Edge থেকে প্রাপ্ত সম্পূর্ণ ত্রুটির বার্তায় আপনার অ্যাক্সেস থাকলে, faultstring পড়ুন। faultstring নির্দেশ করে যে অনুরোধ শিরোনামগুলির মোট আকার অনুমোদিত সীমা 25 KB অতিক্রম করেছে৷

    নমুনা ত্রুটি বার্তা:

    "faultstring":"request headers size exceeding 25,600"

    প্রকৃত অনুরোধ

    প্রকৃত অনুরোধ ব্যবহার করে যাচাই করতে:

    ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা তৈরি প্রকৃত অনুরোধে আপনার অ্যাক্সেস থাকলে, নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:

    1. অনুরোধে পাস করা হেডারের আকার যাচাই করুন।
    2. আপনি যদি দেখেন যে হেডারগুলির মোট আকার 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-এ অনুমোদিত সীমা অতিক্রম করে থাকে।

    1. বার্তা প্রসেসর লগ চেক করুন:

      /opt/apigee/var/log/edge-message-processor/logs/system.log

    2. একটি নির্দিষ্ট সময়কালের মধ্যে (যদি সমস্যাটি অতীতে ঘটে থাকে) কোন 431 ত্রুটি আছে কিনা বা 431 এর সাথে কোন অনুরোধ এখনও ব্যর্থ হয়েছে কিনা তা দেখতে অনুসন্ধান করুন। আপনি নিম্নলিখিত অনুসন্ধান স্ট্রিং ব্যবহার করতে পারেন.
      grep -ri "exceeding"
      
      grep -ri "RequestHeadersTooLarge"
      
    3. আপনি 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 নির্দেশ করে যে মোট অনুরোধ শিরোনামের আকার 25 KB-এর বেশি। অতএব, Apigee Edge ব্যতিক্রমটি com.apigee.errors.http.user.RequestHeadersTooLarge ছুঁড়ে দেয় এবং ক্লায়েন্ট অ্যাপ্লিকেশনগুলিতে ফল্ট কোড protocol.http.TooBigHeaders .http.TooBigHeaders সহ 431 স্ট্যাটাস কোড প্রদান করে।

রেজোলিউশন

আকার ঠিক করুন

বিকল্প # 1 [প্রস্তাবিত]: ক্লায়েন্ট অ্যাপ্লিকেশনটি যাতে অনুমোদিত সীমার চেয়ে বেশি মোট আকারের অনুরোধ শিরোনাম না পাঠানোর জন্য ঠিক করুন

  1. নির্দিষ্ট ক্লায়েন্টকে বড় আকারের অনুরোধ শিরোনাম পাঠানোর কারণ বিশ্লেষণ করুন যা সীমাতে সংজ্ঞায়িত হিসাবে মোট হেডারের আকার অনুমোদিত সীমার চেয়ে বেশি করে।
  2. যদি এটি পছন্দসই না হয়, তাহলে আপনার ক্লায়েন্ট অ্যাপ্লিকেশনটি পরিবর্তন করুন যাতে এটি অনুমোদিত সীমার চেয়ে কম আকারের অনুরোধ শিরোনাম পাঠায়।

    উপরে আলোচিত উদাহরণে, আপনি অনুরোধের বডি/পেলোডের অংশ হিসাবে দীর্ঘ হেডার মান প্যারামিটার পাস করে সমস্যাটি সমাধান করতে পারেন:

    curl -v https://HOSTALIAS/test -d '{ "header0: 000000000000000000……..000000<trimmed>" , "header1: 111111111111111111……..111111<ttrimmed>" , "header2: 222222222222222222……..222222<ttrimmed>", "header3: 333333333333333333……..333333<ttrimmed>" }'
    
  3. যদি এটি পছন্দসই হয় এবং আপনি অনুমোদিত সীমার চেয়ে বেশি শিরোনাম পাঠাতে চান তবে পরবর্তী বিকল্পে যান।

CwC

বিকল্প #2 : অনুরোধ লাইন সীমা বাড়ানোর জন্য CwC প্রপার্টি ব্যবহার করুন

Apigee একটি CwC প্রপার্টি প্রদান করে যা এটিকে অনুরোধ লাইনের আকারের সীমা বাড়ানোর অনুমতি দেয়। বিশদ বিবরণের জন্য বার্তা প্রসেসরে অনুরোধ লাইন সীমা সেট করুন দেখুন

সীমা

Apigee আশা করে যে ক্লায়েন্ট অ্যাপ্লিকেশন এবং ব্যাকএন্ড সার্ভার অনুরোধ/প্রতিক্রিয়া শিরোনাম পাঠাবে না যার আকারগুলি Apigee এজ সীমাতে অনুরোধ/প্রতিক্রিয়া শিরোনামের আকার সীমার জন্য নথিভুক্ত সীমার চেয়ে বেশি।

  1. আপনি যদি একজন পাবলিক ক্লাউড ব্যবহারকারী হন, তাহলে অনুরোধ এবং প্রতিক্রিয়া শিরোনামের আকারের সর্বোচ্চ সীমা Apigee এজ লিমিটে অনুরোধ/প্রতিক্রিয়া শিরোনামের আকারের জন্য নথিভুক্ত করা হয়েছে।
  2. আপনি যদি একজন ব্যক্তিগত ক্লাউড ব্যবহারকারী হন, তাহলে আপনি অনুরোধ এবং প্রতিক্রিয়া শিরোনামের আকারের জন্য ডিফল্ট সর্বোচ্চ সীমা পরিবর্তন করতে পারেন (যদিও এটি একটি প্রস্তাবিত অনুশীলন নয়)। আপনি বর্তমান সীমা কিভাবে চেক করবেন এর নির্দেশাবলী অনুসরণ করে সর্বোচ্চ অনুরোধ শিরোনামের আকারের সীমা নির্ধারণ করতে পারেন।

বর্তমান সীমা চেক কিভাবে?

এই বিভাগটি ব্যাখ্যা করে কিভাবে যাচাই করা যায় যে HTTPRequest.headers.limit বৈশিষ্ট্যটি মেসেজ প্রসেসরে একটি নতুন মান সহ আপডেট করা হয়েছে।

  1. মেসেজ প্রসেসর মেশিনে, /opt/apigee/edge-message-processor/conf ডিরেক্টরিতে HTTPRequest.headers.limit প্রপার্টি অনুসন্ধান করুন এবং নীচে দেখানো হিসাবে কী মান সেট করা হয়েছে তা দেখুন:
    grep -ri "HTTPRequest.headers.limit" /opt/apigee/edge-message-processor/conf
    
  2. উপরের কমান্ড থেকে নমুনা ফলাফল নিম্নরূপ:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTPRequest.headers.limit=25k
  3. উপরের উদাহরণের আউটপুটে, লক্ষ্য করুন যে প্রপার্টি HTTPRequest.headers.limit http.properties25k মান সহ সেট করা হয়েছে।

    এটি নির্দেশ করে যে ব্যক্তিগত ক্লাউডের জন্য Apigee-এ কনফিগার করা অনুরোধ শিরোনামের আকারের সীমা হল 25 KB৷

স্পেসিফিকেশন

Apigee Edge আশা করে যে ক্লায়েন্ট অ্যাপ্লিকেশন অনুরোধের অংশ হিসাবে বড় আকারের হেডার পাঠাবে না। যদি অনুরোধে নির্দিষ্ট সীমার চেয়ে মোট আকারের শিরোনাম থাকে, Apigee নিম্নোক্ত RFC স্পেসিফিকেশন অনুযায়ী 431 Request Header Fields Too Large ফেলে:

স্পেসিফিকেশন
RFC 6585, বিভাগ 5: 431 অনুরোধ শিরোনাম ক্ষেত্রগুলি খুব বড়

আপনার যদি এখনও Apigee সাপোর্ট থেকে কোনো সহায়তার প্রয়োজন হয়, তাহলে অবশ্যই ডায়াগনস্টিক তথ্য সংগ্রহ করুন- এ যান।

ডায়াগনস্টিক তথ্য সংগ্রহ করতে হবে

নিম্নলিখিত ডায়াগনস্টিক তথ্য সংগ্রহ করুন, এবং তারপর Apigee Edge সহায়তার সাথে যোগাযোগ করুন:

আপনি যদি একজন পাবলিক ক্লাউড ব্যবহারকারী হন, তাহলে নিম্নলিখিত তথ্য প্রদান করুন:

  • প্রতিষ্ঠানের নাম
  • পরিবেশের নাম
  • API প্রক্সি নাম
  • 431 ত্রুটি পুনরুত্পাদন করতে ব্যবহৃত সম্পূর্ণ curl কমান্ড
  • API অনুরোধের জন্য ট্রেস ফাইল

আপনি যদি একজন ব্যক্তিগত ক্লাউড ব্যবহারকারী হন, তাহলে নিম্নলিখিত তথ্য প্রদান করুন:

  • ব্যর্থ অনুরোধের জন্য পরিলক্ষিত সম্পূর্ণ ত্রুটি বার্তা
  • প্রতিষ্ঠানের নাম
  • পরিবেশের নাম
  • API প্রক্সি বান্ডেল
  • ব্যর্থ API অনুরোধের জন্য ট্রেস ফাইল
  • 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