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');
});

... कंसोल स्टेटमेंट, पैनल में दिखते हैं:

Nlinx टारगेट को कॉन्फ़िगर करने के टाइम आउट की सेटिंग

अगर Ngnx को प्रॉक्सी के तौर पर इस्तेमाल किया जा रहा है और आपको "खराब गेटवे" की गड़बड़ियां दिखती हैं, तो यहां बताए गए तरीके से, Ngnx प्रॉक्सी टाइम आउट कॉन्फ़िगरेशन को बढ़ाकर देखें:

उदाहरण के लिए:

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, और अन्य बेहतर विषयों के बारे में जानकारी देखें.