Debugowanie i rozwiązywanie problemów z serwerami proxy Node.js

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Przed wdrożeniem w Edge warto sprawdzić, czy kod Node.js dodany do serwera proxy działa. W tym temacie omawiamy sposoby debugowania i rozwiązywania problemów z serwerami proxy zawierającymi aplikacje Node.js po ich wdrożeniu.

Zwiększ rozmiar puli połączeń, aby poprawić wydajność

Jeśli zauważysz niską wydajność, możesz rozwiązać ten problem, zwiększając domyślny rozmiar puli połączeń Node.js za pomocą maxSockets lub całkowicie wyłączając pulę gniazd. Więcej informacji i przykładowy kod znajdziesz w artykule Node.js Performance Tips: Socket Pooling (Wskazówki dotyczące wydajności Node.js: Socket Pooling) w społeczności Apigee.

Wyświetlanie logów Node.js

Aby wyświetlić informacje z dziennika aplikacji Node.js:

  1. Na głównej stronie serwera proxy interfejsu API kliknij serwer proxy, który chcesz wyświetlić.
  2. Na stronie podsumowania wybranego serwera proxy kliknij Logi Node.js po prawej stronie paska narzędzi.

Na stronie Logi możesz wybrać zakres czasowy logów, które chcesz wyświetlić, tak jak pokazano poniżej. Logi rejestrują wywołania metod HTTP, powodzenie i nieudane wywołania, komunikaty konsoli.log itd. Wpisz wyszukiwany ciąg w polu wyszukiwania, aby wyświetlić wszystkie wpisy w logu, które go zawierają.

Korzystanie z narzędzia do śledzenia

Narzędzie do śledzenia jest przydatne podczas ogólnego debugowania serwera proxy. Szczegółowe informacje o korzystaniu z narzędzia do śledzenia znajdziesz w artykule o korzystaniu z narzędzia do śledzenia.

Drukowanie danych wyjściowych konsoli

Instrukcje Console.log możesz umieścić w kodzie Node.js i wyświetlać dane wyjściowe w narzędziu do śledzenia. Na przykład to polecenie wyświetla wartość zmiennej config.user:

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

Aby wyświetlić dane wyjściowe komunikatów console.log w narzędziu do śledzenia, wywołaj interfejs API w narzędziu do śledzenia i kliknij Dane wyjściowe ze wszystkich transakcji . Spowoduje to otwarcie panelu wyników:

Zakładając, że poniższy kod został przez Ciebie wykonany...

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

... w panelu pojawią się instrukcje konsoli:

Konfigurowanie ustawień docelowego limitu czasu Nginx

Jeśli używasz Nginx jako serwera proxy i widzisz błędy „Bad Gateway”, spróbuj zwiększyć limit czasu oczekiwania serwera proxy Nginx w sposób opisany tutaj:

Na przykład:

proxy_connect_timeout       60;
proxy_read_timeout          120;

Idealne konfiguracje czasu oczekiwania zależą od czasu odpowiedzi serwera. Na przykład czas oczekiwania na odczyt wynoszący 45–60 sekund może być idealny, aby zapewnić buforowanie.

Konfigurowanie ustawień czasu oczekiwania docelowego Apigee

Domyślne wartości czasu oczekiwania Apigee możesz skonfigurować w elemencie HttpTargetConnection w punkcie końcowym TargetEndpoint. Wartości domyślne to:

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>

Zobacz też informacje o właściwościach punktów końcowych.

Więcej informacji

Więcej informacji na temat debugowania znajdziesz tutaj:

Dalsze kroki

Informacje o obsłudze modułów Node.js w Apigee Edge, w tym o obsłudze HTTP/HTTPS, TLS i innych zaawansowanych zagadnień, znajdziesz w artykule Omówienie obsługi Edge dla modułów Node.js.