Node.js প্রক্সি ডিবাগ করা ও সেটির সমস্যা সমাধান করা

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

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

পারফর্ম্যান্স উন্নত করতে কানেকশন পুলের সাইজ বাড়ানো

পারফর্ম্যান্স ধীরগতির হলে, আপনি maxSockets-এর মাধ্যমে ডিফল্ট Node.js কানেকশন পুলের সাইজ বাড়িয়ে অথবা সম্পূর্ণভাবে সকেট পুলিং বন্ধ করে সমস্যার সমাধান করতে পারেন। আরও তথ্য ও কোডের উদাহরণ পেতে, Apigee কমিউনিটিতে Node.js পারফর্ম্যান্স সংক্রান্ত পরামর্শ: সকেট পুলিং দেখুন।

Node.js লগ দেখা

আপনার Node.js অ্যাপ্লিকেশন সম্পর্কে লগ তথ্য দেখতে:

  1. মূল API প্রক্সি পৃষ্ঠায়, আপনি যে প্রক্সি দেখতে চান সেটিতে ক্লিক করুন।
  2. বেছে নেওয়া প্রক্সির সারসংক্ষেপ পৃষ্ঠায়, টুল বারের ডানদিকে Node.js লগ বিকল্পে ক্লিক করুন।

লগ পৃষ্ঠায়, আপনি দেখার জন্য লগের একটি সময়সীমা বেছে নিতে পারবেন, যেমনটি নিচে দেখানো হয়েছে। লগে HTTP মেথড কল, কল সফল বা ব্যর্থ হওয়া, console.log মেসেজ ইত্যাদি রেকর্ড করা হয়। স্ট্রিং আছে এমন সব লগ এন্ট্রি দেখতে সার্চ ফিল্ডে একটি সার্চ স্ট্রিং লিখুন।

ট্রেস টুল ব্যবহার করা

সাধারণ প্রক্সি ডিবাগিংয়ের জন্য ট্রেস টুলটি সহায়ক। ট্রেস টুল ব্যবহার করা সম্পর্কে বিস্তারিত তথ্য পেতে, ট্রেস টুল ব্যবহার করা দেখুন।

কনসোল আউটপুট প্রিন্ট করা

আপনি Node.js কোডে console.log স্টেটমেন্ট এম্বেড করতে এবং ট্রেস টুলে আউটপুট দেখতে পারবেন। যেমন, নিম্নলিখিত বিবৃতিটি ভেরিয়েবলের মান প্রিন্ট করে config.user:

console.log('Logging in as %s', config.username);

ট্রেস টুলে console.log মেসেজের আউটপুট দেখতে, ট্রেস টুলে আপনার API কল করুন এবং আউটপুট প্যানেল খুলতে সব ট্রানজ্যাকশন থেকে আউটপুট বিকল্পে ক্লিক করুন:

ধরে নিচ্ছি যে আপনি নিম্নলিখিত কোড এক্সিকিউট করেছেন...

var http = require('http');

console.log('node.js application starting...');

var svr = http.createServer(function(req, resp) {
    resp.end('Hello, World!');
});

svr.listen(9000, function() {
    console.log('Node HTTP server is listening');
});

... কনসোল স্টেটমেন্ট প্যানেলে দেখা যায়:

Nginx টার্গেট টাইমআউট সেটিংস কনফিগার করা

আপনি যদি প্রক্সি হিসেবে Nginx ব্যবহার করেন এবং "ভুল গেটওয়ে" সংক্রান্ত সমস্যা দেখতে পান, তাহলে এখানে যেভাবে ব্যাখ্যা করা হয়েছে সেইভাবে Nginx প্রক্সি টাইম-আউট কনফিগারেশন বাড়ানোর চেষ্টা করুন:

যেমন:

proxy_connect_timeout       60;
proxy_read_timeout          120;

সার্ভার কতক্ষণ পরে উত্তর দিচ্ছে তার উপর নির্ভর করে আপনার আদর্শ টাইমআউট কনফিগারেশন নির্ধারণ করা যেতে পারে। যেমন, যুক্তিসঙ্গত বাফার প্রদান করার জন্য ৪৫-৬০ সেকেন্ডের রিড টাইমআউট আদর্শ হতে পারে।

Apigee টার্গেট টাইমআউট সেটিংস কনফিগার করা

এছাড়াও, আপনি TargetEndpoint-এ HttpTargetConnection এলিমেন্টে Apigee ডিফল্ট টাইমআউট ভ্যালু কনফিগার করতে পারবেন। ডিফল্ট মান হল:

connect.timeout.millis - 60 seconds
io.timeout.millis - 120 seconds
<HTTPTargetConnection>
    <Properties>
        <Property name="connect.timeout.millis">5000</Property>
        <Property name="io.timeout.millis">5000</Property>
    </Properties>
    <URL>http://www.google.com</URL>
</HTTPTargetConnection>

এছাড়াও, এন্ডপয়েন্ট প্রপার্টি রেফারেন্স দেখুন।

আরও তথ্যের জন্য

ডিবাগিং সম্পর্কে আরও জানতে, এগুলি দেখুন:

পরবর্তী ধাপ

HTTP/HTTPS, TLS ও অন্যান্য উন্নত বিষয় সহ Apigee Edge-এ Node.js মডিউল সাপোর্ট সম্পর্কে তথ্য পেতে, Node.js মডিউলের জন্য Edge সাপোর্ট সম্পর্কে জানুন দেখুন।