Fehler bei Node.js-Proxys beheben

Sie sehen sich die Dokumentation zu Apigee Edge an.
Rufen Sie die Dokumentation zu Apigee X auf.
Weitere Informationen

Es empfiehlt sich, sicherzustellen, dass jeder Node.js-Code, den Sie einem Proxy hinzufügen, funktioniert, bevor Sie ihn in Edge bereitstellen. In diesem Thema werden Möglichkeiten zum Debuggen und Beheben von Fehlern bei Proxys erläutert, die Node.js-Anwendungen enthalten, nachdem sie bereitgestellt wurden.

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

Wenn die Leistung zu gering ist, 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 vollständig deaktivieren. Weitere Informationen und Beispielcode finden Sie in der Apigee-Community unter Node.js-Leistungstipps: 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-Protokolle.

Auf der Seite „Protokolle“ können Sie wie unten dargestellt einen Zeitraum für die anzuzeigenden Protokolle auswählen. Die Protokolle erfassen HTTP-Methodenaufrufe, den Erfolg oder Misserfolg von Aufrufen, console.log-Nachrichten usw. Geben Sie einen Suchstring in das Suchfeld ein, um alle Logeinträge anzuzeigen, die den String enthalten.

Trace-Tool verwenden

Das Trace-Tool ist nützlich für die allgemeine Proxy-Fehlerbehebung. Ausführliche Informationen zur Verwendung des Trace-Tools finden Sie unter Trace-Tool verwenden.

Ausgabe der Druckkonsole

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-Nachrichten im Trace Tool aufrufen möchten, rufen Sie Ihre API im Trace Tool auf und klicken Sie auf Output from all Transactions (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 Konsolenanweisungen im Steuerfeld angezeigt werden:

Nginx-Zielzeitüberschreitungseinstellungen konfigurieren

Wenn Sie Nginx als Proxy verwenden und „Bad Gateway“-Fehler auftreten, versuchen Sie, die Zeitüberschreitungskonfiguration des Nginx-Proxy wie hier beschrieben zu erhöhen:

Beispiel:

proxy_connect_timeout       60;
proxy_read_timeout          120;

Je nachdem, wie lange der Server benötigt, um zu antworten, können Sie die idealen Zeitüberschreitungskonfigurationen festlegen. Eine Lesezeitüberschreitung von 45 bis 60 Sekunden kann beispielsweise ideal sein, um einen angemessenen Puffer bereitzustellen.

Apigee-Zeitlimiteinstellungen für Ziele konfigurieren

Sie können die Apigee-Standardzeitüberschreitungswerte 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>

Weitere Informationen finden Sie unter Referenz für Endpunktattribute.

Weitere Informationen

Weitere Informationen zur Fehlerbehebung 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 Grundlegendes zur Edge-Unterstützung für Node.js-Module.