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

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

প্রক্সিতে যোগ করা যেকোনো Node.js কোড Edge-এ স্থাপন করার আগে তা কাজ করছে কিনা তা নিশ্চিত করা একটি ভালো অভ্যাস। এই বিষয়ে 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 কল করুন এবং আউটপুট প্যানেল খুলতে Output from all Transactions এ ক্লিক করুন:

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

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 কে প্রক্সি হিসেবে ব্যবহার করেন এবং "Bad Gateway" ত্রুটি দেখতে পান, তাহলে এখানে ব্যাখ্যা করা 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>

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

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

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

পরবর্তী পদক্ষেপ

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