ניפוי באגים ופתרון בעיות בשרתי proxy של Node.js

אתם מציגים את מסמכי התיעוד של Apigee Edge.
לעיון במאמרי העזרה של Apigee X.
מידע

מומלץ לוודא שכל קוד Node.js שמוסיפים לשרת proxy פועל לפני שמפרסים אותו ב-Edge. בנושא הזה נסביר איך לנפות באגים ולפתור בעיות בשרתים proxy שכוללים אפליקציות Node.js אחרי הפריסה שלהן.

הגדלת הגודל של מאגר החיבורים כדי לשפר את הביצועים

אם אתם מבחינים בביצועים איטיים, יכול להיות שתוכלו לפתור את הבעיה על ידי הגדלת בריכת החיבורים שמוגדרת כברירת מחדל ב-Node.js באמצעות maxSockets, או על ידי השבתה מוחלטת של בריכת החיבורים. מידע נוסף וקוד לדוגמה זמינים במאמר טיפים לביצועים של Node.js: מאגר שקעים בקהילת Apigee.

צפייה ביומני Node.js

כדי להציג את פרטי היומן של אפליקציית Node.js:

  1. בדף הראשי של שרת ה-proxy ל-API, לוחצים על שרת ה-proxy שרוצים להציג.
  2. בדף הסיכום של שרת ה-proxy שנבחר, לוחצים על Node.js Logs בצד שמאל של סרגל הכלים.

בדף 'יומנים' תוכלו לבחור טווח זמן של יומנים להצגה, כמו שמתואר בהמשך. היומנים מתעדים קריאות ל-method HTTP, הצלחה או כשל של קריאות, הודעות console.log וכו'. מזינים מחרוזת חיפוש בשדה החיפוש כדי להציג את כל הרשומות ביומן שמכילות את המחרוזת.

שימוש בכלי המעקב

כלי המעקב שימושי לניפוי באגים כללי בשרת proxy. למידע מפורט על השימוש בכלי המעקב, ראו שימוש בכלי המעקב.

הפלט של מסוף ההדפסה

אפשר להטמיע הצהרות console.log בקוד Node.js ולראות את הפלט בכלי המעקב. לדוגמה, ההצהרה הבאה מדפיסה את הערך של המשתנה 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 כשרת proxy ומופיעות שגיאות מסוג 'Bad Gateway', נסו להגדיל את ההגדרה של זמן הקצאת הזמן הקצוב לתפוגה של שרת ה-proxy של Nginx, כפי שמוסבר כאן:

לדוגמה:

proxy_connect_timeout       60;
proxy_read_timeout          120;

בהתאם למשך הזמן שנדרש לשרת להגיב, הוא יכול לקבוע את ההגדרות האידיאליות לזמן קצוב לתפוגה. לדוגמה, זמן קצוב לתפוגה של קריאה הוא 45 עד 60 שניות הוא אידיאלי כדי לספק מאגר נתונים זמני סביר.

הגדרת ההגדרות של זמן הקצאת הזמן היעד ב-Apigee

אפשר גם להגדיר את ערכי ברירת המחדל של הזמן הקצוב לתפוגה של Apigee ברכיב HttpTargetConnection ב-TargetEndpoint. ערכי ברירת המחדל הם:

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>

אפשר לעיין גם בחומר העזר בנושא מאפייני נקודות קצה.

אפשר לקבל מידע נוסף

מידע נוסף על ניפוי באגים זמין במאמרים הבאים:

השלבים הבאים

למידע על תמיכה במודולים של Node.js ב-Apigee Edge, כולל מידע על תמיכה ב-HTTP/HTTPS, ב-TLS ובנושאים מתקדמים אחרים, אפשר לעיין במאמר הסבר על התמיכה של Edge במודולים של Node.js.