Node.js प्रॉक्सी को डीबग करना और उनसे जुड़ी समस्या हल करना

Apigee Edge का दस्तावेज़ देखा जा रहा है.
Apigee X दस्तावेज़ पर जाएं.
जानकारी

यह पक्का करना अच्छा होता है कि किसी प्रॉक्सी में जोड़ा गया कोई भी Node.js कोड, Edge में डिप्लॉय करने से पहले काम करता हो. इस विषय में, डिप्लॉय किए जाने के बाद, Node.js ऐप्लिकेशन वाले प्रॉक्सी को डीबग करने और उनसे जुड़ी समस्याओं को हल करने के तरीकों के बारे में बताया गया है.

परफ़ॉर्मेंस को बेहतर बनाने के लिए, कनेक्शन पूल का साइज़ बढ़ाना

अगर परफ़ॉर्मेंस धीमी है, तो maxSockets के साथ डिफ़ॉल्ट Node.js कनेक्शन पूल का साइज़ बढ़ाकर या सॉक पूलिंग को पूरी तरह से बंद करके समस्या को हल किया जा सकता है. ज़्यादा जानकारी और कोड का उदाहरण पाने के लिए, Apigee कम्यूनिटी में Node.js परफ़ॉर्मेंस से जुड़ी सलाह: सॉकेट पूल देखें.

Node.js लॉग देखना

अपने Node.js ऐप्लिकेशन के बारे में लॉग की जानकारी देखने के लिए:

  1. एपीआई प्रॉक्सी के मुख्य पेज पर, उस प्रॉक्सी पर क्लिक करें जिसे आपको देखना है.
  2. चुने गए प्रॉक्सी के खास जानकारी वाले पेज में, टूल बार की दाईं ओर मौजूद Node.js लॉग पर क्लिक करें.

लॉग पेज पर, लॉग देखने के लिए समयसीमा चुनी जा सकती है, जैसा कि यहां दिखाया गया है. लॉग में एचटीटीपी मेथड कॉल, कॉल के पूरा होने या न होने, console.log मैसेज वगैरह की जानकारी रिकॉर्ड की जाती है. खोज फ़ील्ड में कोई खोज स्ट्रिंग डालें, ताकि उस स्ट्रिंग वाली सभी लॉग एंट्री दिखें.

ट्रेस करने वाले टूल का इस्तेमाल करना

ट्रेस टूल, प्रॉक्सी को डीबग करने के लिए काम का है. ट्रैक टूल का इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए, ट्रैक टूल का इस्तेमाल करना लेख पढ़ें.

कंसोल का आउटपुट प्रिंट करना

अपने Node.js कोड में console.log स्टेटमेंट एम्बेड किए जा सकते हैं और ट्रैक करने वाले टूल में आउटपुट देखा जा सकता है. उदाहरण के लिए, नीचे दिया गया स्टेटमेंट, config.user वैरिएबल की वैल्यू को प्रिंट करता है:

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

ट्रेस टूल में console.log मैसेज का आउटपुट देखने के लिए, ट्रेस टूल में अपने एपीआई को कॉल करें और आउटपुट पैनल खोलने के लिए, सभी लेन-देन से मिले आउटपुट पर क्लिक करें:

मान लें कि आपने यह कोड लागू किया है...

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>

एंडपॉइंट प्रॉपर्टी का रेफ़रंस भी देखें.

अधिक जानकारी के लिए

डीबग करने के बारे में ज़्यादा जानने के लिए, यहां देखें:

अगले चरण

Apigee Edge में Node.js मॉड्यूल के साथ काम करने के बारे में जानकारी पाने के लिए, Node.js मॉड्यूल के लिए Edge के साथ काम करने के बारे में जानकारी लेख पढ़ें. इसमें एचटीटीपी/एचटीटीपीएस, TLS, और अन्य बेहतर विषयों के साथ काम करने के बारे में जानकारी भी शामिल है.