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

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

यह पक्का करना ज़रूरी है कि प्रॉक्सी में जोड़ा गया कोई भी 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 को प्रॉक्सी के तौर पर इस्तेमाल किया जा रहा है और आपको "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 मॉड्यूल की सुविधा के बारे में जानने के लिए, यह लेख पढ़ें. इसमें एचटीटीपी/एचटीटीपीएस, टीएलएस, और अन्य विषयों के बारे में जानकारी दी गई है. इसके लिए, Edge में Node.js मॉड्यूल की सुविधा के बारे में जानकारी देखें .