Node.js প্রক্সি ডিবাগিং এবং সমস্যা সমাধান করা

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

আপনি একটি প্রক্সিতে যোগ করা যেকোন Node.js কোডটি এজ-এ স্থাপন করার আগে কাজ করে তা নিশ্চিত করা একটি ভাল অভ্যাস। এই বিষয়টি প্রক্সিগুলিকে ডিবাগ করার এবং সমস্যা সমাধানের উপায় নিয়ে আলোচনা করে যাতে Node.js অ্যাপ্লিকেশনগুলি স্থাপন করার পরে অন্তর্ভুক্ত থাকে৷

পারফরম্যান্স উন্নত করতে সংযোগ পুলের আকার বৃদ্ধি করা হচ্ছে

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

Node.js লগ দেখা হচ্ছে

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

  1. প্রধান API প্রক্সি পৃষ্ঠায়, আপনি যে প্রক্সি দেখতে চান তাতে ক্লিক করুন।
  2. নির্বাচিত প্রক্সির সারাংশ পৃষ্ঠায়, টুল বারের ডানদিকে Node.js Logs-এ ক্লিক করুন।

লগ পৃষ্ঠায়, আপনি নীচে দেখানো হিসাবে, দেখার জন্য লগগুলির একটি সময়সীমা নির্বাচন করতে পারেন৷ লগগুলি 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;

সার্ভার কতক্ষণ সাড়া দেয় তার উপর নির্ভর করে আপনার আদর্শ টাইমআউট কনফিগারেশন নির্ধারণ করতে পারে। উদাহরণস্বরূপ, 45-60 সেকেন্ডের একটি পড়ার সময়সীমা একটি যুক্তিসঙ্গত বাফার প্রদানের জন্য আদর্শ হতে পারে।

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 এজে Node.js মডিউল সমর্থন সম্পর্কে তথ্যের জন্য, Node.js মডিউলগুলির জন্য এজ সমর্থন বোঝা দেখুন।