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 के लॉग पर क्लिक करें दाईं ओर मौजूद बटन पर क्लिक करें.

लॉग पेज में, देखने के लिए लॉग की समयसीमा चुनी जा सकती है, जैसा कि नीचे दिखाया गया है. लॉग रिकॉर्ड एचटीटीपी तरीके से कॉल, कॉल का पूरा होना या न होना, 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 टारगेट की टाइम आउट सेटिंग कॉन्फ़िगर करना

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