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

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

Przed wdrożeniem kodu w Edge warto sprawdzić, czy kod Node.js dodany do serwera proxy działa prawidłowo. W tym artykule omawiamy sposoby debugowania i rozwiązywania problemów z serwerami proxy, które obejmują aplikacje Node.js po ich wdrożeniu.

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

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

Wyświetlanie logów Node.js

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

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

Na stronie Dzienniki możesz wybrać zakres czasowy dzienników, który chcesz wyświetlić (patrz przykład poniżej). Dzienniki rejestrują wywołania metody HTTP, powodzenie lub niepowodzenie wywołań, komunikaty console.log itp. Wpisz ciąg znaków w polu wyszukiwania, aby wyświetlić wszystkie wpisy w logu, które go zawierają.

Korzystanie z narzędzia do śledzenia

Narzędzie do śledzenia przydaje się do ogólnego debugowania serwera proxy. Szczegółowe informacje o korzystaniu z narzędzia do śledzenia znajdziesz w artykule Korzystanie z narzędzia Trace.

Drukowanie danych wyjściowych konsoli

Możesz umieszczać w kodzie Node.js instrukcje console.log i wyświetlać dane wyjściowe w narzędziu do śledzenia. Na przykład to polecenie drukuje wartość zmiennej config.user:

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

Aby wyświetlić w narzędziu do śledzenia informacje z pliku console.log, wywołaj interfejs API w narzędziu do śledzenia i kliknij Wyjście ze wszystkich transakcji , aby otworzyć panel wyjścia:

Zakładając, że uruchomiono ten kod:

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ń limitu czasu miejsca docelowego Nginx

Jeśli używasz Nginx jako serwera proxy i widzisz błędy „Nieprawidłowa brama”, spróbuj zwiększyć konfigurację limitu czasu serwera proxy Nginx, jak opisano tutaj:

Na przykład:

proxy_connect_timeout       60;
proxy_read_timeout          120;

Czas odpowiedzi serwera może określać optymalne ustawienia limitu czasu. Na przykład czas oczekiwania na odczyt wynoszący 45–60 sekund może być optymalny, aby zapewnić odpowiedni bufor.

Konfiguruję ustawienia docelowego limitu czasu Apigee

Wartości domyślne limitu czasu Apigee możesz też skonfigurować w elemencie HttpTargetConnection w elementzie TargetEndpoint. Wartości domyślne:

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>

Zapoznaj się też z informacjami o właściwościach punktów końcowych.

Więcej informacji

Więcej informacji o debugowaniu:

Dalsze kroki

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