Fehler bei Node.js-Proxys beheben

Sie lesen gerade die Dokumentation zu Apigee Edge.
Apigee X-Dokumentation aufrufen.
info

Es empfiehlt sich, den Node.js-Code, den Sie einem Proxy hinzufügen, zu testen, bevor Sie ihn in Edge bereitstellen. In diesem Thema wird beschrieben, wie Sie Proxys, die Node.js-Anwendungen enthalten, nach der Bereitstellung debuggen und Fehler beheben können.

Größe des Verbindungspools erhöhen, um die Leistung zu verbessern

Wenn Sie eine langsame Leistung feststellen, können Sie das Problem möglicherweise beheben, indem Sie die Standardgröße des Node.js-Verbindungspools mit maxSockets erhöhen oder das Socket-Pooling ganz deaktivieren. Weitere Informationen und Beispielcode finden Sie in der Apigee-Community unter Node.js Performance Tips: Socket Pooling.

Node.js-Logs ansehen

So rufen Sie Protokollinformationen zu Ihrer Node.js-Anwendung auf:

  1. Klicken Sie auf der Hauptseite „API-Proxys“ auf den Proxy, den Sie aufrufen möchten.
  2. Klicken Sie auf der Übersichtsseite des ausgewählten Proxys rechts in der Symbolleiste auf Node.js-Logs.

Auf der Seite „Logs“ können Sie wie unten dargestellt einen Zeitraum für die anzuzeigenden Logs auswählen. In den Protokollen werden HTTP-Methodenaufrufe, der Erfolg oder Misserfolg von Aufrufen, console.log-Meldungen usw. aufgezeichnet. Geben Sie eine Suchzeichenfolge in das Suchfeld ein, um alle Logeinträge anzuzeigen, die die Zeichenfolge enthalten.

Trace-Tool verwenden

Das Trace-Tool ist nützlich für das allgemeine Debugging von Proxys. Ausführliche Informationen zur Verwendung des Trace-Tools finden Sie unter Trace-Tool verwenden.

Konsolenausgabe drucken

Sie können console.log-Anweisungen in Ihren Node.js-Code einbetten und die Ausgabe im Trace-Tool ansehen. Mit der folgenden Anweisung wird beispielsweise der Wert der Variablen config.user ausgegeben:

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

Wenn Sie die Ausgabe von console.log-Meldungen im Trace Tool ansehen möchten, rufen Sie Ihre API im Trace Tool auf und klicken Sie auf Ausgabe von allen Transaktionen , um das Ausgabefeld zu öffnen:

Angenommen, Sie haben den folgenden Code ausgeführt…

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

… werden die Konsolenausgaben im Bereich angezeigt:

Nginx-Zielzeitlimit-Einstellungen konfigurieren

Wenn Sie Nginx als Proxy verwenden und „Bad Gateway“-Fehler angezeigt werden, versuchen Sie, das Nginx-Proxy-Zeitlimit zu erhöhen. Gehen Sie dazu so vor:

Beispiel:

proxy_connect_timeout       60;
proxy_read_timeout          120;

Die ideale Konfiguration für das Zeitlimit hängt davon ab, wie lange der Server für die Antwort benötigt. Ein Lese-Timeout von 45 bis 60 Sekunden kann beispielsweise einen angemessenen Puffer bieten.

Apigee-Zielzeitlimit-Einstellungen konfigurieren

Sie können die Apigee-Standard-Timeoutwerte auch im Element „HttpTargetConnection“ im TargetEndpoint konfigurieren. Die Standardwerte sind:

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>

Siehe auch Referenz für Endpunktattribute.

Weitere Informationen

Weitere Informationen zum Debuggen finden Sie unter:

Nächste Schritte

Informationen zur Unterstützung von Node.js-Modulen in Apigee Edge, einschließlich Informationen zur Unterstützung von HTTP/HTTPS, TLS und anderen erweiterten Themen, finden Sie unter Unterstützung von Node.js-Modulen in Edge.