502 খারাপ গেটওয়ে - TooBigHeaders

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

উপসর্গ

ক্লায়েন্ট অ্যাপ্লিকেশনটি API কলগুলির প্রতিক্রিয়া হিসাবে ত্রুটি কোড protocol.http.TooBigHeaders সহ 502 Bad Gateway একটি HTTP স্ট্যাটাস কোড পায়।http.TooBigHeaders।

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

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

HTTP/1.1 502 Bad Gateway

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

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

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

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

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

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

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

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

API মনিটরিং

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

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

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

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

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

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

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

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

  10. লগ উইন্ডো থেকে, নিম্নলিখিত বিবরণ নোট করুন:
    • স্ট্যাটাস কোড: 502
    • ফল্ট উত্স: target
    • ফল্ট কোড: protocol.http.TooBigHeaders
  11. যদি ফল্ট সোর্সের ভ্যালু target থাকে এবং ফল্ট কোডের মান protocol.http.TooBigHeaders থাকে

ট্রেস টুল

  1. ট্রেস সেশন সক্ষম করুন এবং হয়:
    1. 502 Bad Gateway ত্রুটি ঘটতে অপেক্ষা করুন, বা
    2. আপনি যদি সমস্যাটি পুনরুত্পাদন করতে পারেন, তাহলে API কল করুন এবং 502 Bad Gateway ত্রুটি পুনরুত্পাদন করুন৷
  2. ব্যর্থ অনুরোধগুলির একটি নির্বাচন করুন এবং ট্রেস পরীক্ষা করুন।
  3. ট্রেসের বিভিন্ন পর্যায়ে নেভিগেট করুন এবং কোথায় ব্যর্থতা ঘটেছে তা সনাক্ত করুন।
  4. সাধারণত আপনি নীচের দেখানো হিসাবে লক্ষ্য সার্ভার পর্যায়ে অনুরোধ পাঠানোর ঠিক পরে ত্রুটি নামক ফ্লোতে এই ত্রুটিটি দেখতে পাবেন:

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

    ট্রেস থেকে ত্রুটির মান নোট করুন:

    • ত্রুটি: response headers size exceeding 25,600
    • error.class : com.apigee.errors.http.server.BadGateway

    এটি নির্দেশ করে যে Apigee Edge (মেসেজ প্রসেসর কম্পোনেন্ট) একটি হেডার সাইজ অনুমোদিত সীমা অতিক্রম করার কারণে ব্যাকএন্ড সার্ভার থেকে প্রতিক্রিয়া পাওয়ার সাথে সাথে ত্রুটিটি ফেলে দেয়।

  5. Apigee Edge দ্বারা প্রেরিত ক্লায়েন্টের কাছে প্রেরিত ত্রুটির প্রতিক্রিয়াতে আপনি ব্যর্থতা দেখতে পাবেন যা নীচে দেখানো হয়েছে:

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

  6. ট্রেস থেকে ত্রুটির মান নোট করুন। উপরের নমুনা ট্রেস দেখায়:
    • ত্রুটি: 502 Bad Gateway
    • ত্রুটি বিষয়বস্তু: {"fault":{"faultstring":"response headers size exceeding 25,600","detail":{"errorcode":"protocol.http.TooBigHeaders"}}}
  7. ট্রেসে AX (Analytics Data Recorded) ফেজে নেভিগেট করুন এবং সম্পর্কিত বিবরণ দেখতে এটিতে ক্লিক করুন।

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

    নিম্নলিখিত মান নোট করুন:

    ত্রুটি শিরোনাম মান
    এক্স-অ্যাপিজি-ফল্ট-কোড protocol.http.TooBigHeaders
    এক্স-অ্যাপিজি-ফল্ট-উৎস target
    ত্রুটি বিষয়বস্তু: শরীর {"fault":{"faultstring":"response headers size exceeding 25,600","detail":{"errorcode":"protocol.http.TooBigHeaders"}}}

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

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

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

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

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

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

    NGINX অ্যাক্সেস লগ থেকে নমুনা 502 ত্রুটি:

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

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

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

রোগ নির্ণয়

  1. এপিআই মনিটরিং, ট্রেস টুল, বা এনজিআইএনএক্স অ্যাক্সেস লগ ব্যবহার করে দেখা ত্রুটির জন্য ফল্ট কোড , ফল্ট সোর্স এবং রেসপন্স পেলোড সাইজ নির্ধারণ করুন, যেমনটি সাধারণ রোগ নির্ণয়ের ধাপে ব্যাখ্যা করা হয়েছে।
  2. যদি ফল্ট সোর্সের মান target থাকে, তাহলে এটি নির্দেশ করে যে টার্গেট/ব্যাকএন্ড সার্ভার দ্বারা Apigee-এ পাঠানো প্রতিক্রিয়ার হেডার রয়েছে যার আকার Apigee এজ-এ অনুমোদিত সীমার চেয়ে বেশি।
  3. আপনি যাচাই করতে পারেন যে লক্ষ্য/ব্যাকএন্ড থেকে প্রতিক্রিয়াতে হেডার রয়েছে যার আকার নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করে অনুমোদিত সীমার চেয়ে বেশি ছিল:

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

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

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

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

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

    উপরের ত্রুটি বার্তায়, faultstring নোট করুন যে প্রতিক্রিয়াটিতে হেডার রয়েছে যার মোট আকার অনুমোদিত সীমা ছাড়িয়ে গেছে।

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

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

    আপনার যদি টার্গেট/ব্যাকএন্ড সার্ভারে করা প্রকৃত অনুরোধে অ্যাক্সেস থাকে, তাহলে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:

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

      লক্ষ্য সার্ভার থেকে নমুনা প্রতিক্রিয়া:

      curl -v https://TARGET_SERVER_HOST/test
      
      * About to connect() to 10.1.0.10 port 9000 (#0)
      *   Trying 10.1.0.10...
      * Connected to 10.1.0.10 (10.1.0.10) port 9000 (#0)
      > GET /test HTTP/1.1
      > User-Agent: curl/7.29.0
      > Host: 10.1.0.10:9000
      > Accept: */*
      <
      < HTTP/1.1 200 OK
      < Accept-Ranges: bytes
      < Content-Length: 0
      < Content-Type: text/plain; charset=utf-8
      < Last-Modified: Tue, 20 Jul 2021 09:23:56 GMT
      < Testheader1: XVlBzgba—-<snipped>---THctcuAx
      < Testheader2: hxKQFDaFpLSj—-<snipped>---FbcXoEFfRsWxP
      < Date: Fri, 23 Jul 2021 09:51:22 GMT
      <
      * Connection #0 to host 10.1.0.10 left intact
      

      উপরের উদাহরণে, Testheader1 এবং Testheader2 মাপ বেশি, যা এই ত্রুটির কারণ কারণ এটি Apigee Edge-এ অনুমোদিত সীমা অতিক্রম করেছে।

    বার্তা প্রসেসর লগ

    বার্তা প্রসেসর লগ ব্যবহার করে যাচাই করতে:

    আপনি যদি একজন প্রাইভেট ক্লাউড ব্যবহারকারী হন, তাহলে Apigee Edge-এ রেসপন্স হেডারের আকার অনুমোদিত সীমা অতিক্রম করেছে কিনা তা যাচাই করতে আপনি মেসেজ প্রসেসর লগ ব্যবহার করতে পারেন।

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

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

    2. একটি নির্দিষ্ট সময়কালে (যদি সমস্যাটি অতীতে ঘটে থাকে) কোন 502 ত্রুটি আছে কিনা বা 502 এর সাথে এখনও কোন অনুরোধ ব্যর্থ হয়েছে কিনা তা দেখতে অনুসন্ধান করুন। আপনি নিম্নলিখিত অনুসন্ধান স্ট্রিং ব্যবহার করতে পারেন:
      grep -ri "response headers size exceeding"
      
    3. আপনি system.log থেকে নিচের মত লাইন পাবেন। প্রতিক্রিয়া শিরোনাম আকার আপনার ক্ষেত্রে পরিবর্তিত হতে পারে:
      2021-07-23 08:25:12,307 org:myorg env:prod api:bigheadertest rev:1
      messageid:r23ijb1b-1  NIOThread@1 ERROR HTTP.CLIENT -
      HTTPClient$Context$3.onException() :  ClientChannel[Connected:
      Remote:3.7.1.1:9000 Local:192.168.2.1:56098]@8414 useCount=1
      bytesRead=0 bytesWritten=207 age=640ms  lastIO=0ms  isOpen=true.onExceptionRead
      exception: {}
      com.apigee.errors.http.server.BadGateway: response headers size exceeding 25,600
      
      2021-07-23 08:25:12,307 org:myorg env:prod api:bigheadertest
      rev:1 messageid:r23ijb1b-1  NIOThread@1 ERROR ADAPTORS.HTTP.FLOW -
      AbstractResponseListener.onException() : AbstractResponseListener.onError
      (HTTPResponse@31f3ef88, response headers size exceeding 25,600)
    4. যত তাড়াতাড়ি বার্তা প্রসেসর ব্যাকএন্ড/টার্গেট সার্ভার থেকে প্রতিক্রিয়া পায় এবং দেখে যে হেডারগুলির মোট আকার 25 KB-এর বেশি, এটি থামে এবং ত্রুটিটি নিক্ষেপ করে:

      response headers size exceeding 25,600

      এটি বোঝায় যে মোট হেডারের আকার 25 KB-এর বেশি এবং Apigee ত্রুটিটি ছুঁড়ে দেয় যখন সাইজ 25 KB ছাড়িয়ে যেতে শুরু করে এবং protocol.http.TooBigHeaders হিসাবে ফল্ট কোড সহ।

রেজোলিউশন

আকার ঠিক করুন

বিকল্প #1 [প্রস্তাবিত]: Apigee সীমা ছাড়িয়ে হেডারের আকার না পাঠানোর লক্ষ্য সার্ভার অ্যাপ্লিকেশনটি ঠিক করুন

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

CwC

বিকল্প #2 : প্রতিক্রিয়া শিরোনাম আকার সীমা বাড়ানোর জন্য CwC বৈশিষ্ট্য ব্যবহার করুন

Apigee একটি CwC প্রপার্টি প্রদান করে যা এটিকে রেসপন্স হেডার সাইজ সীমা বাড়ানোর অনুমতি দেয়। বিস্তারিত জানার জন্য দেখুন বার্তা প্রসেসরের জন্য সীমা কনফিগার করা

সীমা

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

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

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

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

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

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

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

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

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

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

  • প্রতিষ্ঠানের নাম
  • পরিবেশের নাম
  • API প্রক্সি নাম
  • 502 ত্রুটি পুনরুত্পাদন করতে ব্যবহৃত সম্পূর্ণ curl কমান্ড
  • API অনুরোধের জন্য ট্রেস ফাইল
  • হেডারের আকার সহ লক্ষ্য/ব্যাকএন্ড সার্ভার থেকে প্রতিক্রিয়ার সম্পূর্ণ আউটপুট

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

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