আপনি 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 মনিটরিং ব্যবহার করে ত্রুটি নির্ণয় করতে:
- Apigee Edge UI এ একটি উপযুক্ত ভূমিকা সহ ব্যবহারকারী হিসাবে সাইন ইন করুন৷
আপনি যে সংস্থায় সমস্যাটি তদন্ত করতে চান সেখানে যান।
- এনালাইজ > API মনিটরিং > ইনভেস্টিগেট পেজে নেভিগেট করুন।
- নির্দিষ্ট সময়সীমা নির্বাচন করুন যেখানে আপনি ত্রুটিগুলি পর্যবেক্ষণ করেছেন।
- আপনি ফল্ট কোড সংকুচিত করতে প্রক্সি ফিল্টার নির্বাচন করতে পারেন।
- সময়ের বিরুদ্ধে প্লট ফল্ট কোড ।
ফল্ট কোড
protocol.http.TooBigHeaders
আছে এমন একটি সেল নির্বাচন করুন। http.TooBigHeaders নীচে দেখানো হয়েছে:( বড় ছবি দেখুন )
আপনি ফল্ট কোড
protocol.http.TooBigHeaders
সম্পর্কে তথ্য দেখতে পাবেন। http.TooBigHeaders নীচে দেখানো হয়েছে:( বড় ছবি দেখুন )
লগ দেখুন ক্লিক করুন এবং ব্যর্থ অনুরোধের জন্য সারি প্রসারিত করুন।
( বড় ছবি দেখুন )
- লগ উইন্ডো থেকে, নিম্নলিখিত বিবরণ নোট করুন:
- স্ট্যাটাস কোড:
502
- ফল্ট উত্স:
target
- ফল্ট কোড:
protocol.http.TooBigHeaders
।
- স্ট্যাটাস কোড:
- যদি ফল্ট সোর্সের ভ্যালু
target
থাকে এবং ফল্ট কোডের মানprotocol.http.TooBigHeaders
থাকে ।
ট্রেস টুল
- ট্রেস সেশন সক্ষম করুন এবং হয়:
-
502 Bad Gateway
ত্রুটি ঘটতে অপেক্ষা করুন, বা - আপনি যদি সমস্যাটি পুনরুত্পাদন করতে পারেন, তাহলে API কল করুন এবং
502 Bad Gateway
ত্রুটি পুনরুত্পাদন করুন৷
-
- ব্যর্থ অনুরোধগুলির একটি নির্বাচন করুন এবং ট্রেস পরীক্ষা করুন।
- ট্রেসের বিভিন্ন পর্যায়ে নেভিগেট করুন এবং কোথায় ব্যর্থতা ঘটেছে তা সনাক্ত করুন।
সাধারণত আপনি নীচের দেখানো হিসাবে লক্ষ্য সার্ভার পর্যায়ে অনুরোধ পাঠানোর ঠিক পরে ত্রুটি নামক ফ্লোতে এই ত্রুটিটি দেখতে পাবেন:
( বড় ছবি দেখুন )
ট্রেস থেকে ত্রুটির মান নোট করুন:
- ত্রুটি:
response headers size exceeding 25,600
- error.class :
com.apigee.errors.http.server.BadGateway
এটি নির্দেশ করে যে Apigee Edge (মেসেজ প্রসেসর কম্পোনেন্ট) একটি হেডার সাইজ অনুমোদিত সীমা অতিক্রম করার কারণে ব্যাকএন্ড সার্ভার থেকে প্রতিক্রিয়া পাওয়ার সাথে সাথে ত্রুটিটি ফেলে দেয়।
- ত্রুটি:
Apigee Edge দ্বারা প্রেরিত ক্লায়েন্টের কাছে প্রেরিত ত্রুটির প্রতিক্রিয়াতে আপনি ব্যর্থতা দেখতে পাবেন যা নীচে দেখানো হয়েছে:
( বড় ছবি দেখুন )
- ট্রেস থেকে ত্রুটির মান নোট করুন। উপরের নমুনা ট্রেস দেখায়:
- ত্রুটি:
502 Bad Gateway
। - ত্রুটি বিষয়বস্তু:
{"fault":{"faultstring":"response headers size exceeding 25,600","detail":{"errorcode":"protocol.http.TooBigHeaders"}}}
- ত্রুটি:
ট্রেসে AX (Analytics Data Recorded) ফেজে নেভিগেট করুন এবং সম্পর্কিত বিবরণ দেখতে এটিতে ক্লিক করুন।
( বড় ছবি দেখুন )
নিম্নলিখিত মান নোট করুন:
ত্রুটি শিরোনাম মান এক্স-অ্যাপিজি-ফল্ট-কোড protocol.http.TooBigHeaders
এক্স-অ্যাপিজি-ফল্ট-উৎস target
ত্রুটি বিষয়বস্তু: শরীর {"fault":{"faultstring":"response headers size exceeding 25,600","detail":{"errorcode":"protocol.http.TooBigHeaders"}}}
এনজিআইএনএক্স
NGINX অ্যাক্সেস লগ ব্যবহার করে ত্রুটি নির্ণয় করতে:
- আপনি যদি একজন ব্যক্তিগত ক্লাউড ব্যবহারকারী হন, তাহলে আপনি HTTP
502 Bad Gateway
সম্পর্কে মূল তথ্য নির্ধারণ করতে NGINX অ্যাক্সেস লগ ব্যবহার করতে পারেন। NGINX অ্যাক্সেস লগগুলি পরীক্ষা করুন:
/opt/apigee/var/log/edge-router/nginx/ ORG ~ ENV . PORT# _access_log
যেখানে: ORG , ENV , এবং PORT# প্রকৃত মান দিয়ে প্রতিস্থাপিত হয়৷
- একটি নির্দিষ্ট সময়কালে (যদি সমস্যাটি অতীতে ঘটে থাকে) এরর কোড
protocol.http.TooBigHeaders
সাথে কোনো502
ত্রুটি আছে কিনা তা দেখতে অনুসন্ধান করুন502
আপনি যদি 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
কারণ: প্রতিক্রিয়াতে হেডারের আকার অনুমোদিত সীমার চেয়ে বেশি
রোগ নির্ণয়
- এপিআই মনিটরিং, ট্রেস টুল, বা এনজিআইএনএক্স অ্যাক্সেস লগ ব্যবহার করে দেখা ত্রুটির জন্য ফল্ট কোড , ফল্ট সোর্স এবং রেসপন্স পেলোড সাইজ নির্ধারণ করুন, যেমনটি সাধারণ রোগ নির্ণয়ের ধাপে ব্যাখ্যা করা হয়েছে।
- যদি ফল্ট সোর্সের মান
target
থাকে, তাহলে এটি নির্দেশ করে যে টার্গেট/ব্যাকএন্ড সার্ভার দ্বারা Apigee-এ পাঠানো প্রতিক্রিয়ার হেডার রয়েছে যার আকার Apigee এজ-এ অনুমোদিত সীমার চেয়ে বেশি। - আপনি যাচাই করতে পারেন যে লক্ষ্য/ব্যাকএন্ড থেকে প্রতিক্রিয়াতে হেডার রয়েছে যার আকার নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি ব্যবহার করে অনুমোদিত সীমার চেয়ে বেশি ছিল:
ত্রুটি বার্তা
ত্রুটি বার্তা ব্যবহার করে যাচাই করতে:
Apigee Edge থেকে প্রাপ্ত সম্পূর্ণ ত্রুটির বার্তায় আপনার অ্যাক্সেস থাকলে,
faultstring
পড়ুন।faultstring
নির্দেশ করে যে প্রতিক্রিয়া শিরোনামের আকার অনুমোদিত সীমা অতিক্রম করেছে।নমুনা ত্রুটি বার্তা:
"faultstring":"response headers size exceeding 25,600"
উপরের ত্রুটি বার্তায়,
faultstring
নোট করুন যে প্রতিক্রিয়াটিতে হেডার রয়েছে যার মোট আকার অনুমোদিত সীমা ছাড়িয়ে গেছে।প্রকৃত অনুরোধ
প্রকৃত অনুরোধ ব্যবহার করে যাচাই করতে:
আপনার যদি টার্গেট/ব্যাকএন্ড সার্ভারে করা প্রকৃত অনুরোধে অ্যাক্সেস থাকে, তাহলে নিম্নলিখিত পদক্ষেপগুলি সম্পাদন করুন:
- আপনি যদি একজন পাবলিক ক্লাউড/প্রাইভেট ক্লাউড ব্যবহারকারী হন, তাহলে ব্যাকএন্ড সার্ভার থেকে সরাসরি ব্যাকএন্ড সার্ভারে বা অন্য কোনো মেশিন থেকে অনুরোধ করুন যেখান থেকে আপনাকে ব্যাকএন্ড সার্ভারে অনুরোধ করার অনুমতি দেওয়া হয়েছে।
- আপনি যদি একজন ব্যক্তিগত ক্লাউড ব্যবহারকারী হন তবে আপনি বার্তা প্রসেসরগুলির একটি থেকে ব্যাকএন্ড সার্ভারে অনুরোধও করতে পারেন।
- ব্যাকএন্ড সার্ভার থেকে প্রাপ্ত প্রতিক্রিয়া পরীক্ষা করুন এবং প্রতিক্রিয়াতে পাস করা হেডারগুলির মোট আকার বিশেষভাবে গণনা করুন এবং যাচাই করুন।
আপনি যদি দেখেন যে প্রতিক্রিয়া পেলোডে শিরোনামগুলির আকার 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-এ রেসপন্স হেডারের আকার অনুমোদিত সীমা অতিক্রম করেছে কিনা তা যাচাই করতে আপনি মেসেজ প্রসেসর লগ ব্যবহার করতে পারেন।
বার্তা প্রসেসর লগ চেক করুন:
/opt/apigee/var/log/edge-message-processor/logs/system.log
- একটি নির্দিষ্ট সময়কালে (যদি সমস্যাটি অতীতে ঘটে থাকে) কোন
502
ত্রুটি আছে কিনা বা502
এর সাথে এখনও কোন অনুরোধ ব্যর্থ হয়েছে কিনা তা দেখতে অনুসন্ধান করুন। আপনি নিম্নলিখিত অনুসন্ধান স্ট্রিং ব্যবহার করতে পারেন:grep -ri "response headers size exceeding"
- আপনি
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)
যত তাড়াতাড়ি বার্তা প্রসেসর ব্যাকএন্ড/টার্গেট সার্ভার থেকে প্রতিক্রিয়া পায় এবং দেখে যে হেডারগুলির মোট আকার 25 KB-এর বেশি, এটি থামে এবং ত্রুটিটি নিক্ষেপ করে:
response headers size exceeding 25,600
এটি বোঝায় যে মোট হেডারের আকার 25 KB-এর বেশি এবং Apigee ত্রুটিটি ছুঁড়ে দেয় যখন সাইজ 25 KB ছাড়িয়ে যেতে শুরু করে এবং
protocol.http.TooBigHeaders
হিসাবে ফল্ট কোড সহ।
রেজোলিউশন
আকার ঠিক করুন
বিকল্প #1 [প্রস্তাবিত]: Apigee সীমা ছাড়িয়ে হেডারের আকার না পাঠানোর লক্ষ্য সার্ভার অ্যাপ্লিকেশনটি ঠিক করুন
- নির্দিষ্ট টার্গেট সার্ভারের প্রতিক্রিয়া শিরোনামের আকার সীমাতে সংজ্ঞায়িত অনুমোদিত সীমার চেয়ে বেশি পাঠানোর কারণ বিশ্লেষণ করুন।
- যদি এটি পছন্দসই না হয়, আপনার ব্যাকএন্ড সার্ভার অ্যাপ্লিকেশনটি সংশোধন করুন যাতে এটি প্রতিক্রিয়া শিরোনাম পাঠায় যার আকার Apigee এজ-এ অনুমোদিত সীমার চেয়ে কম।
- শিরোনাম তথ্য প্রতিক্রিয়া শরীরের অংশ হিসাবে পাঠানো যেতে পারে কিনা পরীক্ষা করুন.
- সম্ভব হলে, প্রতিক্রিয়া বডিতে শিরোনামের অংশ হিসাবে আপনি পাঠানোর পরিকল্পনা করছেন এমন কোনও বড় তথ্য পাঠান। এটি নিশ্চিত করবে যে আপনি প্রতিক্রিয়া শিরোনামের সীমা অতিক্রম করবেন না।
CwC
বিকল্প #2 : প্রতিক্রিয়া শিরোনাম আকার সীমা বাড়ানোর জন্য CwC বৈশিষ্ট্য ব্যবহার করুন
Apigee একটি CwC প্রপার্টি প্রদান করে যা এটিকে রেসপন্স হেডার সাইজ সীমা বাড়ানোর অনুমতি দেয়। বিস্তারিত জানার জন্য দেখুন বার্তা প্রসেসরের জন্য সীমা কনফিগার করা
সীমা
Apigee আশা করে যে ক্লায়েন্ট অ্যাপ্লিকেশন এবং ব্যাকএন্ড সার্ভার Apigee এজ লিমিটে অনুরোধ/প্রতিক্রিয়া হেডার সাইজের জন্য নথিভুক্ত সীমার চেয়ে বেশি হেডার সাইজ পাঠাবে না।
- আপনি যদি একজন পাবলিক ক্লাউড ব্যবহারকারী হন, তাহলে অনুরোধ এবং প্রতিক্রিয়া শিরোনামের আকারের সর্বোচ্চ সীমা Apigee এজ লিমিটে অনুরোধ/প্রতিক্রিয়া শিরোনামের আকারের জন্য নথিভুক্ত করা হয়েছে।
- আপনি যদি একজন ব্যক্তিগত ক্লাউড ব্যবহারকারী হন, তাহলে আপনি অনুরোধ এবং প্রতিক্রিয়া শিরোনামের আকারের জন্য ডিফল্ট সর্বোচ্চ সীমা পরিবর্তন করতে পারেন (যদিও এটি একটি প্রস্তাবিত অনুশীলন নয়)। কিভাবে বর্তমান সীমা চেক করতে হয় -তে নির্দেশাবলী অনুসরণ করে আপনি সর্বোচ্চ রেসপন্স হেডার সাইজ সীমা নির্ধারণ করতে পারেন।
বর্তমান সীমা চেক কিভাবে?
এই বিভাগটি ব্যাখ্যা করে কিভাবে যাচাই করা যায় যে HTTPResponse.headers.limit
বৈশিষ্ট্যটি মেসেজ প্রসেসরে একটি নতুন মান সহ আপডেট করা হয়েছে।
- মেসেজ প্রসেসর মেশিনে,
/opt/apigee/edge-message-processor/conf
ডিরেক্টরিতেHTTPResponse.headers.limit
প্রপার্টি অনুসন্ধান করুন এবং নীচে দেখানো হিসাবে কী মান সেট করা হয়েছে তা পরীক্ষা করুন:grep -ri "HTTPResponse.headers.limit" /opt/apigee/edge-message-processor/conf
- উপরের কমান্ড থেকে নমুনা ফলাফল নিম্নরূপ:
/opt/apigee/edge-message-processor/conf/http.properties:HTTPResponse.headers.limit=25k
উপরের উদাহরণের আউটপুটে, লক্ষ্য করুন যে প্রপার্টি
HTTPResponse.headers.limit
http.properties
এ25k
মান সহ সেট করা হয়েছে।এটি নির্দেশ করে যে ব্যক্তিগত ক্লাউডের জন্য 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