Fehler bei Node.js-Proxys beheben

Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zu Apigee X.
info

Es empfiehlt sich, jeden Node.js-Code, den Sie einem Proxy hinzufügen, zu testen, bevor Sie ihn in Edge bereitstellen. In diesem Thema werden Möglichkeiten zur Fehlerbehebung und zum Debuggen von Proxys beschrieben, die nach der Bereitstellung Node.js Anwendungen enthalten.

Vergrößern der Verbindungspoolgröße zur Leistungsverbesserung

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 Loginformationen 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 rechten Seite der Symbolleiste.

Auf der Seite „Logs“ können Sie einen Zeitraum für die Logs auswählen, die angezeigt werden sollen, wie unten dargestellt. In den Logs werden HTTP-Methodenaufrufe, Erfolg oder Fehler von Aufrufen, console.log-Meldungen usw. aufgezeichnet. Geben Sie im Suchfeld eine Such anfrage ein, um alle Logeinträge anzuzeigen, die die Anfrage enthalten.

Trace-Tool verwenden

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

Console-Ausgabe drucken

Sie können console.log-Anweisungen in Ihren Node.js-Code einbetten und die Ausgabe im Trace Tool ansehen. Die folgende Anweisung gibt beispielsweise den Wert der Variablen config.user aus:

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

Die Console-Anweisungen werden im Feld angezeigt:

Timeout-Einstellungen für Nginx-Ziele konfigurieren

Wenn Sie Nginx als Proxy verwenden und „Bad Gateway“-Fehler sehen, versuchen Sie, die Timeout-Konfiguration des Nginx-Proxys zu erhöhen, wie hier beschrieben:

Beispiel:

proxy_connect_timeout       60;
proxy_read_timeout          120;

Je nachdem, wie lange der Server für die Antwort benötigt, können Sie die idealen Timeout Konfigurationen bestimmen. Ein Lese-Timeout von 45 bis 60 Sekunden kann beispielsweise ideal sein, um einen angemessenen Puffer zu bieten.

Timeout-Einstellungen für Apigee-Ziele konfigurieren

Sie können die Standard-Timeout-Werte von Apigee 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 Edge-Unterstützung für Node.js-Module.