Node poate citi singur variabilele de mediu pentru proxy atunci când suportul său încorporat este activat la pornirea procesului. Clienții disponibili depind de versiunea runtime-ului:

  • fetch-ul încorporat acceptă NODE_USE_ENV_PROXY de la Node 24.0.0, cu un backport la 22.21.0.
  • Suportul încorporat pentru node:http și node:https prin agenții lor globali impliciti începe la 24.5.0, de asemenea portat înapoi la 22.21.0.
  • Comutatorul de linie de comandă --use-env-proxy începe la 24.5.0 și 22.21.0.

Pe o versiune compatibilă, acest exemplu POSIX-shell setează un proxy HTTP corporativ pentru ambele scheme de destinație:

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

Numele HTTPS_PROXY selectează ruta pentru destinațiile HTTPS; URL-ul poate numi în continuare un proxy HTTP. Ajustați NO_PROXY la destinațiile care ar trebui să îl ocolească. Pentru un test independent de URL public fără cont de proxy, o intrare HTTP din lista de proxy HTTP poate furniza ambele valori de proxy, în timp ce ocolirile interne necesare rămân.

Forma cu comutator de mediu este o alternativă:

export NODE_USE_ENV_PROXY=1
node app.js

Setați variabilele de rutare înainte de a lansa Node cu oricare dintre forme. Atribuirea indicatorului opt-in către process.env după pornire nu reexecută inițializarea de pornire.

Verificați ce client HTTP este folosit efectiv

Agenții globali impliciti sunt relevanți pentru apelurile http și https care îi folosesc. O bibliotecă cu propriul agent sau dispecer personalizat își controlează propriul transport; socketurile TCP brute sunt în afara acestei funcții de rutare HTTP. Pentru un client Undici compatibil, un dispecer ProxyAgent explicit este o interfață separată locală clientului.

Dacă o aplicație înlocuiește un agent global, inspectați acea înlocuire înainte de a presupune că păstrează comportamentul de proxy la pornire. În mod similar, configurația registrului npm este o setare separată a instrumentului și nu dovedește cum app.js rutează cererile.

Pentru o cerință corporativă de încredere TLS, configurați CA de încredere potrivită pentru runtime. Activarea rutării prin proxy nu necesită dezactivarea verificării certificatelor.

Articole similare