La Undici lese proxyvariabler fra miljøet
Bruk EnvHttpProxyAgent bevisst, og skill mellom små bokstavers prioritet, omgåelsesregler, lagrede proxy-URL-er og dynamisk no_proxy.
Bruk EnvHttpProxyAgent når prosessmiljøet skal velge ruten. Bruk en eksplisitt Undici ProxyAgent når endepunktet skal høre til klientkonfigurasjonen. Send den til den faktiske forespørselen; å bare opprette agenten endrer ingen fetch-kall:
import { EnvHttpProxyAgent, fetch } from 'undici';
const dispatcher = new EnvHttpProxyAgent();
try {
const response = await fetch("https://example.com/", {
dispatcher,
signal: AbortSignal.timeout(15000),
});
console.log(response.status);
await response.arrayBuffer();
} finally {
await dispatcher.close();
}Lagre dette som proxy-check.mjs i et ES-moduloppsett med Undici tilgjengelig. Denne POSIX-starten gir de to proxyrutene og en tom omgåelsesliste:
http_proxy=http://203.0.113.10:8080 \
https_proxy=http://203.0.113.10:8080 \
no_proxy= \
node proxy-check.mjsErstatt dokumentasjonsendepunktet med din HTTP-proxy eller en kandidat fra HTTP-proxylisten. Tilordningene gjelder dette kallet; andre skall bruker annen syntaks.
I Undici 8.12.3 har de små bokstavene i http_proxy, https_proxy og no_proxy prioritet over tilsvarende store når begge finnes. HTTP- og HTTPS-mål velger hver sine innstillinger. En innstilling bare for HTTP gir også HTTPS-fallback; bare HTTPS gir ikke HTTP. Ikke anta at en annen klients ALL_PROXY-konvensjon gjelder.
| Inndata | Når denne utgaven bruker dem |
|---|---|
| HTTP/HTTPS-proxymiljø | Velges når agenten opprettes. Lag en ny dispatcher etter endring av disse endepunktene. |
no_proxy fra miljøet | Kontrolleres på nytt når forespørsler sendes. |
noProxy i konstruktøren | Fastsetter omgåelsespolicyen eksplisitt i stedet for å følge senere miljøendringer. |
Omgåelser kan matche verter og valgfrie porter; én stjerne omgår proxyen for alle forespørsler. Sjekk målmatchen hvis proxyen ikke ser trafikk.
På Windows behandler hovedprosessen miljønavn uten å skille mellom store og små bokstaver, så HTTP_PROXY og http_proxy er ikke uavhengige verdier. Miljøkopier i Node Worker har et dokumentert skille etter bokstavstørrelse. Ta hensyn til dette før du setter begge skrivemåtene for å teste prioriteten. Eksemplet lukker dispatcheren etter arbeidet; behold den mens gjentatte forespørsler trenger samme lagrede endepunktpolicy.