Node kann Proxy-Umgebungsvariablen selbst lesen, wenn seine integrierte Unterstützung beim Prozessstart aktiviert wird. Die verfügbaren Clients hängen von der Runtime-Version ab:

  • Das integrierte fetch unterstützt NODE_USE_ENV_PROXY ab Node 24.0.0, mit einem Backport auf 22.21.0.
  • Die integrierte Unterstützung von node:http und node:https über ihre standardmäßigen globalen Agenten beginnt bei 24.5.0, ebenfalls auf 22.21.0 zurückportiert.
  • Der Befehlszeilenschalter --use-env-proxy beginnt bei 24.5.0 und 22.21.0.

Auf einer kompatiblen Version legt dieses POSIX-Shell-Beispiel einen Unternehmens-HTTP-Proxy für beide Zielschemas fest:

export HTTP_PROXY=http://proxy.example.net:8080
export HTTPS_PROXY=http://proxy.example.net:8080
export NO_PROXY=localhost,127.0.0.1,.internal.example

node --use-env-proxy app.js

Der Name HTTPS_PROXY wählt die Route für HTTPS-Ziele; die URL kann dennoch einen HTTP-Proxy benennen. Passen Sie NO_PROXY an die Ziele an, die ihn umgehen sollen. Für einen unabhängigen Test mit öffentlicher URL ohne Proxy-Konto kann ein HTTP-Eintrag aus der HTTP-Proxy-Liste beide Proxy-Werte liefern, während die erforderlichen internen Ausnahmen erhalten bleiben.

Die Umgebungsschalter-Form ist eine Alternative:

export NODE_USE_ENV_PROXY=1
node app.js

Legen Sie die Routing-Variablen fest, bevor Sie Node in einer der beiden Formen starten. Das Zuweisen des Opt-in-Flags zu process.env nach dem Start führt die Startinitialisierung nicht erneut aus.

Prüfen Sie, welcher HTTP-Client tatsächlich verwendet wird

Die standardmäßigen globalen Agenten sind für http- und https-Aufrufe relevant, die sie verwenden. Eine Bibliothek mit eigenem benutzerdefiniertem Agenten oder Dispatcher steuert ihren eigenen Transport; rohe TCP-Sockets liegen außerhalb dieser HTTP-Routing-Funktion. Für einen kompatiblen Undici-Client ist ein expliziter ProxyAgent-Dispatcher eine separate clientlokale Schnittstelle.

Wenn eine Anwendung einen globalen Agenten ersetzt, untersuchen Sie diesen Ersatz, bevor Sie annehmen, dass er das Startproxy-Verhalten beibehält. Ebenso ist die Registry-Konfiguration von npm eine separate Werkzeugeinstellung und beweist nicht, wie app.js Anfragen weiterleitet.

Für eine Unternehmens-TLS-Vertrauensanforderung konfigurieren Sie die passende vertrauenswürdige CA für die Runtime. Das Aktivieren des Proxy-Routings erfordert nicht, die Zertifikatsprüfung zu deaktivieren.

Ähnliche Artikel