Debug e risoluzione dei problemi dei proxy Node.js

Stai visualizzando la documentazione di Apigee Edge.
Consulta la documentazione di Apigee X.
info

È buona norma assicurarsi che il codice Node.js aggiunto a un proxy funzioni prima di eseguirne il deployment su Edge. Questo argomento descrive i modi per eseguire il debug e risolvere i problemi dei proxy che includono applicazioni Node.js dopo la loro implementazione.

Aumentare le dimensioni del pool di connessioni per migliorare le prestazioni

Se noti prestazioni lente, potresti risolvere il problema aumentando le dimensioni del pool di connessioni Node.js predefinito con maxSockets o disattivando completamente il pooling dei socket. Per ulteriori informazioni ed esempi di codice, consulta Suggerimenti per le prestazioni di Node.js: pooling dei socket nella community Apigee.

Visualizzazione dei log di Node.js

Per visualizzare le informazioni di log sulla tua applicazione Node.js:

  1. Nella pagina principale dei proxy API, fai clic sul proxy che vuoi visualizzare.
  2. Nella pagina di riepilogo del proxy selezionato, fai clic su Log Node.js sul lato destro della barra degli strumenti.

Nella pagina Log, puoi selezionare un intervallo di tempo dei log da visualizzare, come mostrato di seguito. I log registrano chiamate di metodi HTTP, esito positivo o negativo delle chiamate, messaggi console.log e così via. Inserisci una stringa di ricerca nel campo di ricerca per visualizzare tutte le voci di log che contengono la stringa.

Utilizzare lo strumento di tracciamento

Lo strumento di tracciamento è utile per il debug generale del proxy. Per informazioni dettagliate sull'utilizzo dello strumento di tracciamento, vedi Utilizzare lo strumento di tracciamento.

Output della console di stampa

Puoi incorporare istruzioni console.log nel codice Node.js e visualizzare l'output nello strumento di tracciamento. Ad esempio, la seguente istruzione stampa il valore della variabile config.user:

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

Per visualizzare l'output dei messaggi console.log nello strumento di tracciamento, chiama la tua API nello strumento di tracciamento e fai clic su Output di tutte le transazioni per aprire il riquadro di output:

Supponendo di aver eseguito il seguente codice…

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

... le istruzioni della console vengono visualizzate nel riquadro:

Configurazione delle impostazioni di timeout della destinazione Nginx

Se utilizzi Nginx come proxy e visualizzi errori "Bad Gateway", prova ad aumentare la configurazione del timeout del proxy Nginx come spiegato qui:

Ad esempio:

proxy_connect_timeout       60;
proxy_read_timeout          120;

A seconda del tempo impiegato dal server per rispondere, puoi determinare le configurazioni di timeout ideali. Ad esempio, un timeout di lettura di 45-60 secondi potrebbe essere ideale per fornire un buffer ragionevole.

Configurazione delle impostazioni di timeout della destinazione Apigee

Puoi anche configurare i valori di timeout predefiniti di Apigee nell'elemento HttpTargetConnection in TargetEndpoint. I valori predefiniti sono:

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>

Vedi anche Riferimento per le proprietà degli endpoint.

Per ulteriori informazioni

Per saperne di più sul debug, vedi:

Passaggi successivi

Per informazioni sul supporto dei moduli Node.js in Apigee Edge, incluse informazioni sul supporto di HTTP/HTTPS, TLS e altri argomenti avanzati, consulta Informazioni sul supporto di Edge per i moduli Node.js.