Låt Undici läsa proxyvariabler från miljön
Använd EnvHttpProxyAgent medvetet och skilj på gemenernas prioritet, förbikopplingsregler, fångade proxy-URL:er och dynamiska no_proxy-inställningar.
Använd EnvHttpProxyAgent när processmiljön ska välja vägen. Använd en uttrycklig Undici ProxyAgent när endpointen ska höra till klientkonfigurationen. Koppla den till den verkliga förfrågan; att bara skapa agenten ändrar inget fetch-anrop:
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();
}Spara detta som proxy-check.mjs i en ES-modulmiljö där Undici finns tillgängligt. Den här POSIX-starten anger båda proxyrutterna och en tom förbikopplingslista:
http_proxy=http://203.0.113.10:8080 \
https_proxy=http://203.0.113.10:8080 \
no_proxy= \
node proxy-check.mjsByt dokumentationsendpointen mot din HTTP-proxy eller en kandidat från HTTP-proxylistan. Tilldelningarna gäller den här körningen; andra skal har annan syntax.
I Undici 8.12.3 har gemenerna http_proxy, https_proxy och no_proxy företräde framför motsvarigheterna med versaler när båda finns. HTTP- och HTTPS-mål väljer sina egna inställningar. En inställning enbart för HTTP ger även HTTPS-fallback; enbart HTTPS ger inte HTTP. Anta inte att en annan klients ALL_PROXY-konvention gäller.
| Indata | När den här versionen använder dem |
|---|---|
| HTTP/HTTPS-proxymiljö | Väljs när agenten skapas. Skapa en ny dispatcher efter ändring av dessa endpoints. |
no_proxy i miljön | Kontrolleras igen när förfrågningar skickas. |
noProxy i konstruktorn | Låser förbikopplingspolicyn uttryckligen i stället för att följa senare miljöändringar. |
Förbikopplingar kan matcha värdar och valfria portar; en ensam asterisk förbikopplar proxyn för varje förfrågan. Kontrollera målmatchningen om proxyn inte ser trafik.
På Windows behandlar huvudprocessen miljönamn skiftlägesokänsligt, så HTTP_PROXY och http_proxy är inte oberoende värden. Node Workers miljökopior har en dokumenterad skiftlägeskänslig skillnad. Ta hänsyn till den innan du sätter båda stavningarna för att testa prioriteten. Exemplet stänger dispatchern efter arbetet; behåll den medan upprepade förfrågningar behöver samma fångade endpointpolicy.