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

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

উপসর্গ

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

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

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

HTTP/1.1 502 Bad Gateway

উপরন্তু, আপনি নীচে দেখানো একটির মত একটি ত্রুটি বার্তা পর্যবেক্ষণ করতে পারেন:

{
   "fault":{
      "faultstring":"Decompression failure at response",
      "detail":{
         "errorcode":"messaging.adaptors.http.flow.DecompressionFailureAtResponse"
      }
   }
}

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

এই ত্রুটিটি ঘটে শুধুমাত্র যদি:

  • HTTP প্রতিক্রিয়া (ব্যাকএন্ড/টার্গেট সার্ভার থেকে) শিরোনামে নির্দিষ্ট এনকোডিং Content-Encoding বৈধ এবং Apigee এজ দ্বারা সমর্থিত ,
  • কিন্তু

  • HTTP প্রতিক্রিয়ার অংশ হিসাবে ব্যাকএন্ড/টার্গেট সার্ভার দ্বারা পাঠানো পেলোড বিন্যাস Content-Encoding শিরোনামে নির্দিষ্ট করা এনকোডিং বিন্যাসের সাথে মেলে না

এর কারণ হল Apigee Edge নির্দিষ্ট এনকোডিং ব্যবহার করে পেলোড ডিকোড করতে ব্যর্থ হয় যেহেতু পেলোডের বিন্যাসটি Content-Encoding শিরোনামে উল্লেখ করা এনকোডিংয়ের মতো একই বিন্যাসে নয়।

এখানে সমর্থিত Content-Encoding মানগুলির কয়েকটি উদাহরণ এবং কীভাবে অ্যাপিজি এজ সেই ক্ষেত্রে পেলোড উপস্থাপনা আশা করে:

দৃশ্যকল্প বিষয়বস্তু-এনকোডিং পেলোড উপস্থাপনা
একক এনকোডিং জিজিপ

ইউনিক্স gzip ফরম্যাট।

RFC1952 GZIP ফরম্যাট দেখুন।

একক এনকোডিং ডিফ্লেট

এই বিন্যাসটি ডিফ্লেট কম্প্রেশন অ্যালগরিদম সহ zlib কাঠামো ব্যবহার করে।

RFC1950 এবং RFC1951 দেখুন .

একাধিক এনকোডিং

একাধিক এনকোডিং

উদাহরণস্বরূপ, যখন এনকোডিং দুইবার করা হয়, এটি হতে পারে:

  • gzip, deflate
  • gzip, gzip
  • ডিফ্লেট, জিজিপ
  • deflate, deflate
প্রদত্ত ক্রমানুসারে পেলোডে একাধিক এনকোডিং প্রয়োগ করা হয়েছে যেমনটি হেডারে প্রদর্শিত হয়৷

এই ত্রুটির সম্ভাব্য কারণগুলি নিম্নরূপ:

কারণ বর্ণনা সমস্যা সমাধানের নির্দেশাবলী প্রযোজ্য
প্রতিক্রিয়া পেলোড ফর্ম্যাট সামগ্রী-এনকোডিংয়ের সাথে মেলে না৷ ব্যাকএন্ড/টার্গেট সার্ভার দ্বারা প্রেরিত প্রতিক্রিয়া পেলোডের বিন্যাসটি হয় এনকোড করা হয়নি বা Content-Encoding শিরোনামে নির্দিষ্ট এনকোডিংয়ের সাথে মেলে না। এজ পাবলিক এবং প্রাইভেট ক্লাউড ব্যবহারকারীরা

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

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

API মনিটরিং

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

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

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

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

  8. ফল্ট কোড messaging.adaptors.http.flow.DecompressionFailureAtResponse সম্পর্কে তথ্য নীচে দেখানো হয়েছে:

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

  9. লগ দেখুন ক্লিক করুন এবং 502 ত্রুটির সাথে ব্যর্থ হওয়া সারিটি প্রসারিত করুন।

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

  10. লগ উইন্ডো থেকে, নিম্নলিখিত বিবরণ নোট করুন:
    • স্ট্যাটাস কোড: 502
    • ফল্ট উত্স: target
    • ফল্ট কোড: messaging.adaptors.http.flow.DecompressionFailureAtResponse
  11. যদি ফল্ট সোর্সের মান target থাকে, তাহলে এটি নির্দেশ করে যে প্রতিক্রিয়া পেলোড বিন্যাসটি ব্যাকএন্ড সার্ভারের প্রতিক্রিয়া শিরোনামে নির্দিষ্ট সমর্থিত এনকোডিংয়ের সাথে মেলেনি Content-Encoding .

ট্রেস টুল

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

  1. ট্রেস সেশন সক্ষম করুন এবং হয়:
    1. 502 Bad Gateway ত্রুটি ঘটতে অপেক্ষা করুন, বা
    2. আপনি যদি সমস্যাটি পুনরুত্পাদন করতে পারেন, API কল করুন এবং 502 Bad Gateway পুনরুত্পাদন করুন।
  2. সমস্ত ফ্লোইনফোস সক্ষম করা আছে তা নিশ্চিত করুন:

  3. ব্যর্থ প্রতিক্রিয়াগুলির একটি নির্বাচন করুন এবং ট্রেস পরীক্ষা করুন।
  4. ট্রেসের বিভিন্ন পর্যায়ে নেভিগেট করুন এবং কোথায় ব্যর্থতা ঘটেছে তা সনাক্ত করুন।
  5. আপনি সাধারণত লক্ষ্য সার্ভার ফেজ থেকে প্রতিক্রিয়া প্রাপ্তির ঠিক পরে একটি ফ্লোতে ত্রুটি খুঁজে পাবেন যেমন নীচে দেখানো হয়েছে:

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

  6. ট্রেস থেকে বৈশিষ্ট্যের মান নোট করুন:

    • বিষয়বস্তু-এনকোডিং: gzip
    • প্রতিক্রিয়া বিষয়বস্তুর অংশ: {"fault":{"faultstring":"Decompression failure at response","detail":{"errorcode":"messaging.adaptors.http.flow.DecompressionFailureAtResponse"}}}
  7. টার্গেট সার্ভার ফেজ থেকে প্রাপ্ত প্রতিক্রিয়ার ঠিক পরে ত্রুটি পর্যায়ে নেভিগেট করুন:

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

    বৈশিষ্ট্যগুলি নোট করুন:

    • ত্রুটি: Decompression failure at response
    • error.class: com.apigee.errors.http.server.BadGateway
    • error.cause: Not in GZIP format

      error.cause বলে যে প্রতিক্রিয়া পেলোড GZIP ফর্ম্যাটে নয়। এর মানে হল যে Apigee Edge আশা করছিল রেসপন্স পেলোড GZIP ফরম্যাটে হবে যেমনটি Content-Encoding হেডারে উল্লেখ করা হয়েছে (আগের ধাপে নির্ধারিত হয়েছে)। তাই, Apigee Edge gzip ব্যবহার করে পেলোড ডিকম্প্রেস করতে পারে না এবং Decompression failure at response ফিরিয়ে দেয়।

    লক্ষ্য করুন যে লক্ষ্য/ব্যাকএন্ড সার্ভার থেকে প্রতিক্রিয়া এই ক্ষেত্রে 200 ; যাইহোক, ক্লায়েন্ট অ্যাপ্লিকেশনটি একটি 502 প্রতিক্রিয়া পাবে কারণ Apigee Edge দ্বারা ত্রুটিটি ফেরত দেওয়া হয়েছে।

  8. ট্রেসে ক্লায়েন্টের কাছে পাঠানো প্রতিক্রিয়াতে নেভিগেট করুন এবং এটিতে ক্লিক করুন।

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

    ট্রেস থেকে নিম্নলিখিত বিবরণ নোট করুন:

    • স্ট্যাটাস কোড: 502 Bad Gateway
    • ত্রুটি বিষয়বস্তু: {"fault":{"faultstring":"Decompression failure at response","detail":{"errorcode":"messaging.adaptors.http.flow.DecompressionFailureAtResponse"}}}
  9. ট্রেসে AX (Analytics Data Recorded) পর্বে নেভিগেট করুন এবং এটিতে ক্লিক করুন।

  10. ফেজ বিশদ বিবরণ , ত্রুটি শিরোনাম বিভাগে স্ক্রোল করুন এবং নীচে দেখানো হিসাবে X-Apigee-fault-code এবং X-Apigee-fault-source এর মান নির্ধারণ করুন:

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

  11. আপনি messaging.adaptors.http.flow.DecompressionFailureAtResponse এবং target হিসাবে X-Apigee-fault-code এবং X-Apigee-ফল্ট-সোর্সের মান দেখতে পাবেন, যা নির্দেশ করে যে প্রতিক্রিয়া পেলোড বিন্যাস Content-Encoding তে নির্দিষ্ট করা এনকোডিংয়ের সাথে মেলেনি। Content-Encoding হেডার।
    প্রতিক্রিয়া শিরোনাম মান
    এক্স-অ্যাপিজি-ফল্ট-কোড messaging.adaptors.http.flow.DecompressionFailureAtResponse
    এক্স-অ্যাপিজি-ফল্ট-উৎস target

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

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

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

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

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

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

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

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

    প্রতিক্রিয়া শিরোনাম মান
    এক্স-অ্যাপিজি-ফল্ট-কোড messaging.adaptors.http.flow.DecompressionFailureAtResponse
    এক্স-অ্যাপিজি-ফল্ট-উৎস target

কারণ: প্রতিক্রিয়া পেলোড বিন্যাস সামগ্রী-এনকোডিংয়ের সাথে মেলে না

ডিফল্টরূপে, Apigee Edge সবসময় পেলোড ডিকম্প্রেস করে যদি রেসপন্স হেডার Content-Encoding একটি বৈধ এবং একটি সমর্থিত এনকোডিং থাকে। অতএব, এটি প্রত্যাশিত যে প্রতিক্রিয়া পেলোডের বিন্যাস প্রতিক্রিয়া শিরোনাম Content-Encoding এ উল্লিখিত এনকোডিংয়ের সাথে মেলে । যদি একটি অমিল হয়, তাহলে আপনি এই ত্রুটি পেতে.

রোগ নির্ণয়

  1. এপিআই মনিটরিং, ট্রেস টুল, বা এনজিআইএনএক্স অ্যাক্সেস লগ ব্যবহার করে দেখা ত্রুটির জন্য ফল্ট কোড এবং ফল্ট সোর্স নির্ণয় করুন যা সাধারণ নির্ণয়ের ধাপে ব্যাখ্যা করা হয়েছে।
  2. যদি ফল্ট কোডটি messaging.adaptors.http.flow.DecompressionFailureAtResponse হয় এবং ফল্ট সোর্সের মান target থাকে, তাহলে এটি নির্দেশ করে যে ব্যাকএন্ড/টার্গেট সার্ভার দ্বারা প্রেরিত প্রতিক্রিয়া পেলোডের বিন্যাস প্রতিক্রিয়াতে নির্দিষ্ট করা সমর্থিত এনকোডিংয়ের সাথে মেলে না হেডার Content-Encoding
  3. আপনি নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করে HTTP প্রতিক্রিয়ার অংশ হিসাবে অমিল নির্ধারণ করতে পারেন:

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

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

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

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

      "faultstring":"Decompression failure at response"
    2. উপরের ত্রুটি বার্তায়, এটি "Decompression failure at response" প্রদর্শন করে যা বোঝায় যে প্রতিক্রিয়াটি Content-Encoding শিরোনামে নির্দিষ্ট করা এনকোডিং ব্যবহার করে ডিকম্প্রেস করা যায়নি।

    ট্রেস

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

    1. সাধারণ রোগ নির্ণয়ের ধাপে যেমন ব্যাখ্যা করা হয়েছে ট্রেস ব্যবহার করে বিষয়বস্তুর ধরন এবং error.cause নির্ধারণ করুন।
    2. নমুনা ট্রেস থেকে মান নিম্নরূপ:

      • বিষয়বস্তু-এনকোডিং: gzip
      • error.cause: Not in GZIP format

      রেসপন্স হেডার কন্টেন্ট-এনকোডিং- এর মান হল gzip ; যাইহোক, প্রতিক্রিয়া পেলোড GZIP বিন্যাসে নয় (যেমন error.cause দ্বারা নির্দেশিত)। অতএব, Apigee Edge 502 Bad Gateway এবং ত্রুটি কোড messaging.adaptors.http.flow.DecompressionFailureAtResponse দিয়ে প্রতিক্রিয়া জানায়।

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

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

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

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

      নমুনা:

      curl -v https://HOSTALIAS/test
      

      ***trimmed***
      >
      < HTTP/1.1 200 OK
      < Accept-Ranges: bytes
      < Content-Encoding: gzip
      < Date: Mon, 02 Aug 2021 08:17:35 GMT
      < Transfer-Encoding: chunked
      <
      < response_payload.zip Response Body(not in GZIP format)>
      

      উপরের নমুনা প্রতিক্রিয়াটি Content-Encoding হেডারে মান gzip পাঠায় যা Apigee এজ-এ একটি সমর্থিত এনকোডিং । যাইহোক, response_payload.zip একটি জিপ ফাইল হিসাবে পাঠানো হয়। অতএব, এই প্রতিক্রিয়াটি ত্রুটি কোড সহ একটি 502 Bad Gateway ত্রুটির সাথে ব্যর্থ হয়: messaging.adaptors.http.flow.DecompressionFailureAtResponse

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

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

    আপনি যদি একজন ব্যক্তিগত ক্লাউড ব্যবহারকারী হন, তাহলে আপনি HTTP 502 ত্রুটি সম্পর্কে মূল তথ্য নির্ধারণ করতে বার্তা প্রসেসর লগ ব্যবহার করতে পারেন।

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

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

    2. একটি নির্দিষ্ট সময়কালের মধ্যে (যদি সমস্যাটি অতীতে ঘটে থাকে) কোন 502 ত্রুটি আছে কিনা বা 502 সাথে কোন প্রতিক্রিয়া এখনও ব্যর্থ হয়েছে কিনা তা দেখতে অনুসন্ধান করুন। আপনি নিম্নলিখিত অনুসন্ধান স্ট্রিং ব্যবহার করতে পারেন:

      grep -ri "ZipException"
      
    3. আপনি system.log থেকে নিম্নলিখিতগুলির অনুরূপ লাইনগুলি পাবেন:

      দৃশ্যকল্প #1

      পরিস্থিতি #1: যখন API প্রতিক্রিয়ার শিরোনাম থাকে বিষয়বস্তু-এনকোডিং: gzip

      2021-08-02 06:50:25,433  NIOThread@2 ERROR HTTP.CLIENT -
      HTTPClient$Context.onInputException() :  ClientInputChannel(ClientChannel[Connected:
      Remote:3.8.1.1:9000 Local:10.0.115.32:41298]@38140 useCount=1 bytesRead=0
      bytesWritten=203 age=469ms  lastIO=0ms  isOpen=true).onExceptionRead exception: {}
      java.util.zip.ZipException: Not in GZIP format
      ---trimmed--
      2021-08-02 06:50:25,433  NIOThread@2 INFO  HTTP.CLIENT -
      HTTPClient$Context.logContextDetails() : Request details : host=null
      path=/folder/testFile method=GET. Channel details : Bytes read=0
      2021-08-02 06:50:25,434  NIOThread@2 ERROR ADAPTORS.HTTP.FLOW -
      AbstractResponseListener.onException() : AbstractResponseListener.onError(HTTPResponse@4806fdab, Not in GZIP format)
      2021-08-02 06:50:25,434  NIOThread@2 INFO  HTTP.SERVICE -
      ExceptionHandler.handleException() : Exception
      java.util.zip.ZipException: Not in GZIP format
      occurred while writing to channel null
      2021-08-02 06:50:25,434  NIOThread@2 INFO  HTTP.SERVICE -
      ExceptionHandler.handleException() : Exception trace:
      java.util.zip.ZipException: Not in GZIP format
      

      লাইন java.util.zip.ZipException: Not in GZIP format এটি নির্দেশ করে যে প্রতিক্রিয়া পেলোড GZIP ফর্ম্যাটে পাঠানো হয়নি যদিও Content-Encoding gzip হিসাবে নির্দিষ্ট করা হয়েছে। অতএব, Apigee Edge ব্যতিক্রমটি ছুড়ে দেয় এবং ক্লায়েন্ট অ্যাপ্লিকেশনগুলিতে ফল্ট কোড messaging.adaptors.http.flow.DecompressionFailureAtResponse সহ একটি 502 স্ট্যাটাস কোড প্রদান করে।

      দৃশ্যকল্প #2

      দৃশ্য #2: যখন API প্রতিক্রিয়ার শিরোনাম থাকে Content-Encoding: deflate

      2021-08-02 06:35:21,215  NIOThread@0 ERROR HTTP.CLIENT -
      HTTPClient$Context.onInputException() :  ClientInputChannel(ClientChannel[Connected:
      Remote:3.8.1.1:9000 Local:192.168.194.140:35224]@36014 useCount=1 bytesRead=0
      bytesWritten=202 age=439ms  lastIO=2ms  isOpen=true).onExceptionRead exception: {}
      java.util.zip.ZipException: incorrect header check
      ---trimmed----
      Caused by:
      java.util.zip.DataFormatException: incorrect header check
      ---trimmed---
      2021-08-02 06:35:21,215  NIOThread@0 INFO  HTTP.CLIENT -
      HTTPClient$Context.logContextDetails() : Request details :
      host=null path=/folder/testFile method=GET. Channel details : Bytes read=0
      2021-08-02 06:35:21,216  NIOThread@0 ERROR ADAPTORS.HTTP.FLOW -
      AbstractResponseListener.onException() : AbstractResponseListener.onError(HTTPResponse@3966e277,
      incorrect header check)
      2021-08-02 06:35:21,216  NIOThread@0 INFO  HTTP.SERVICE -
      ExceptionHandler.handleException() : Exception
      java.util.zip.ZipException: incorrect header check occurred while writing to channel null
      2021-08-02 06:35:21,217  NIOThread@0 INFO  HTTP.SERVICE -
      ExceptionHandler.handleException() : Exception trace:
      java.util.zip.ZipException: incorrect header check
      
      

      লাইন java.util.zip.ZipException: incorrect header check এবং Caused by: java.util.zip.DataFormatException: incorrect header check নির্দেশ করে যে প্রতিক্রিয়া পেলোড ডিফ্লেট ফরম্যাটে পাঠানো হয়নি এবং এনকোডিংয়ের সাথে মেলে না ডিফ্লেটের Content-Encoding শিরোনামে নির্দিষ্ট করা হয়েছে। অতএব, Apigee Edge ব্যতিক্রমটি ছুড়ে দেয় এবং ক্লায়েন্ট অ্যাপ্লিকেশনগুলিতে ফল্ট কোড messaging.adaptors.http.flow.DecompressionFailureAtResponse সহ একটি 502 স্ট্যাটাস কোড প্রদান করে।

রেজোলিউশন

  1. Apigee এজ এবং ব্যাকএন্ড সার্ভারে API প্রক্সি ফ্লোতে সংকুচিত প্রতিক্রিয়া পেলোডের কোন প্রয়োজন না থাকলে, হেডার Content-Encoding পাস করবেন না । প্রতিক্রিয়া পেলোড সংকুচিত করার প্রয়োজন হলে, ধাপ 2 এ যান।
  2. যদি প্রতিক্রিয়া পেলোড সংকুচিত করার প্রয়োজন হয়, তাহলে নিশ্চিত করুন যে ব্যাকএন্ড সার্ভার সর্বদা নিম্নলিখিতগুলি পাঠায়:
    • প্রতিক্রিয়াতে Content-Encoding শিরোনামের মান হিসাবে সমর্থিত এনকোডিংগুলির যেকোনও
    • Apigee Edge-এ সমর্থিত বিন্যাসে প্রতিক্রিয়া পেলোড Content-Encoding শিরোনামে নির্দিষ্ট করা এনকোডিং বিন্যাসের সাথে মেলে
  3. উপরে আলোচিত উদাহরণে, রেসপন্স পেলোড জিপ ফরম্যাটে কিন্তু রেসপন্স হেডারটি Content-Encoding: gzip উল্লেখ করে। আপনি Content-Encoding: gzip এবং gzip ফর্ম্যাটে প্রতিক্রিয়া পেলোড হিসাবে প্রতিক্রিয়া শিরোনাম পাঠিয়ে সমস্যাটি সমাধান করতে পারেন:
    curl -v https://HOSTALIAS/v1/test
    
    >
    < HTTP/1.1 200 OK
    < Accept-Ranges: bytes
    < Content-Encoding: gzip
    < Date: Mon, 02 Aug 2021 08:17:35 GMT
    < Transfer-Encoding: chunked
    <
    < response_payload.gz Response Body(in GZIP format)>
    

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

Apigee Edge স্ট্যাটাস কোড 502 Bad Gateway এর সাথে এরর কোড messaging.adaptors.http.flow.DecompressionFailureAtResponse নিম্নলিখিত RFC স্পেসিফিকেশন অনুযায়ী সাড়া দেয়:

স্পেসিফিকেশন
RFC 7231, বিভাগ 6.5.1
RFC 7231, বিভাগ 3.1.2.2

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

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

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

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

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

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

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