502 ভুল গেটওয়ে - TooBigHeaders

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

সমস্যার উপসর্গ

API কলের জন্য ক্লায়েন্ট অ্যাপ্লিকেশন 502 Bad Gateway HTTP স্ট্যাটাস কোড সহ protocol.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 ফল্ট কোডটি নিচে দেখানো মতো আছে:

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

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

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

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

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

  10. লগ উইন্ডো থেকে, নিম্নলিখিত বিবরণ নোট করুন:
    • স্ট্যাটাস কোড: 502
    • সমস্যার সোর্স: target
    • সমস্যার কোড: protocol.http.TooBigHeaders.
  11. Fault Source-এর ভ্যালু target এবং Fault Code-এর ভ্যালু protocol.http.TooBigHeaders হলে, এর অর্থ হল যে টার্গেট/ ব্যাকএন্ড সার্ভার থেকে পাওয়া HTTP রেসপন্সে এমন হেডার আছে যার সাইজ Apigee Edge-এ অনুমোদিত সীমার থেকে বেশি।

ট্রেস টুল

  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 ডেটা রেকর্ড করা হয়েছে) ফেজে নেভিগেট করুন এবং সম্পর্কিত বিবরণ দেখতে সেটিতে ক্লিক করুন।

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

    নিম্নলিখিত মানগুলি মনে রাখবেন:

    সমস্যার হেডার ভ্যালু
    X-Apigee-fault-code protocol.http.TooBigHeaders
    X-Apigee-fault-source target
    সমস্যা সংক্রান্ত কন্টেন্ট: বডি {"fault":{"faultstring":"response headers size exceeding 25,600","detail":{"errorcode":"protocol.http.TooBigHeaders"}}}

NGINX

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. নির্দিষ্ট সময়সীমার মধ্যে 502 সমস্যা সমস্যা কোড protocol.http.TooBigHeaders সহ (যদি সমস্যাটি আগে ঘটে থাকে) অথবা এখনও 502 সহ কোনও অনুরোধ ব্যর্থ হচ্ছে কিনা তা দেখতে সার্চ করুন।
  4. আপনি যদি X-Apigee-fault-code protocol.http.TooBigHeaders-এর ভ্যালুর সাথে ম্যাচ করা502 কোনও সমস্যা খুঁজে পান, তাহলে X-Apigee-fault-source-এর ভ্যালু নির্ধারণ করুন।

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

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

    সমস্যার হেডার ভ্যালু
    X-Apigee-fault-code protocol.http.TooBigHeaders
    X-Apigee-fault-source target

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

ডায়াগনসিস

  1. API মনিটরিং, ট্রেস টুল বা NGINX অ্যাক্সেস লগ ব্যবহার করে দেখা সমস্যার জন্য সমস্যার কোড, সমস্যার সোর্স এবং রেসপন্স পেলোড সাইজ নির্ধারণ করুন। এটি সাধারণ ডায়াগনসিস ধাপ অংশে ব্যাখ্যা করা হয়েছে।
  2. সমস্যার সোর্স-এর ভ্যালু target হলে, এর অর্থ হল যে টার্গেট/ব্যাকএন্ড সার্ভার Apigee-কে যে উত্তর পাঠিয়েছে তাতে এমন হেডার আছে যার সাইজ Apigee Edge-এ অনুমোদিত সীমার চেয়ে বেশি।
  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-এ অনুমোদিত সীমা পেরিয়ে গেছে।

    মেসেজ প্রসেসর লগ

    Message Processor লগ ব্যবহার করে যাচাই করতে:

    আপনি Private Cloud ব্যবহারকারী হলে, মেসেজ প্রসেসর লগ ব্যবহার করে যাচাই করতে পারবেন যে রেসপন্স হেডারের সাইজ 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. মেসেজ প্রসেসর ব্যাকএন্ড/টার্গেট সার্ভার থেকে উত্তর পাওয়ার সাথে সাথেই যদি দেখে যে হেডারগুলির মোট সাইজ ২৫ কেবির চেয়ে বেশি, তাহলে সেটি বন্ধ হয়ে যায় এবং এই সমস্যাটি দেখায়:

      response headers size exceeding 25,600

      এর অর্থ হল, মোট হেডার সাইজ ২৫ কেবির বেশি এবং Apigee সাইজ ২৫ কেবির সীমা অতিক্রম করা শুরু করলে, ফল্ট কোড সহ protocol.http.TooBigHeaders হিসেবে সমস্যা দেখায়

রেজোলিউশন

সাইজ ঠিক করা

বিকল্প #১ [সাজেস্ট করা]: টার্গেট সার্ভার অ্যাপ্লিকেশনকে Apigee-এর সীমা অতিক্রম করে এমন হেডার সাইজ না পাঠানোর জন্য ঠিক করুন

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

CwC

বিকল্প #২ : রেসপন্স হেডার সাইজ সীমা বাড়াতে CwC প্রপার্টি ব্যবহার করুন

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

সীমা

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

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

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

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

  1. মেসেজ প্রসেসর মেশিনে, প্রপার্টি HTTPResponse.headers.limit খুঁজে দেখুন /opt/apigee/edge-message-processor/conf ডিরেক্টরি এবং নিচে দেখানো ভ্যালু সেট করা হয়েছে কিনা তা চেক করুন:
    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.properties-এ 25k ভ্যালু সহ সেট করা হয়েছে।

    এর থেকে বোঝা যায় যে প্রাইভেট ক্লাউডের জন্য Apigee-তে কনফিগার করা রেসপন্স পেলোড সাইজের সীমা ২৫ কেবি।

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

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

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

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

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

আপনি প্রাইভেট ক্লাউড ব্যবহারকারী হলে, নিম্নলিখিত তথ্য দিন:

  • অনুরোধ সম্পূর্ণ না হওয়ার ক্ষেত্রে দেখা সম্পূর্ণ সমস্যার মেসেজ
  • সংস্থার নাম
  • পরিবেশের নাম
  • API Proxy বান্ডেল
  • 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