Nechajte Undici čítať premenné proxy z prostredia
Používajte EnvHttpProxyAgent zámerne a rozlišujte prednosť malých písmen, obchádzanie, zachytené URL proxy a dynamické no_proxy.
Použite EnvHttpProxyAgent, ak má cestu vyberať prostredie procesu. Použite explicitný Undici ProxyAgent, ak koncový bod patrí ku konfigurácii klienta. Odovzdajte ho skutočnej požiadavke; samotné vytvorenie agenta nezmení žiadne volanie fetch.
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();
}Uložte kód ako proxy-check.mjs v prostredí ES modulov s dostupným Undici. Toto spustenie POSIX poskytne dve proxy cesty a prázdny zoznam obchádzania:
http_proxy=http://203.0.113.10:8080 \
https_proxy=http://203.0.113.10:8080 \
no_proxy= \
node proxy-check.mjsNahraďte dokumentačný bod vlastnou HTTP proxy alebo kandidátom zo zoznamu HTTP proxy. Priradenia patria tomuto spusteniu; iné shelly používajú inú syntax.
V Undici 8.12.3 majú malé varianty http_proxy, https_proxy a no_proxy prednosť pred veľkými náprotivkami, ak existujú obe. Ciele HTTP a HTTPS si vyberajú vlastné nastavenia. Samotné HTTP nastavenie poskytuje aj zálohu pre HTTPS; samotné HTTPS neposkytuje HTTP. Nepredpokladajte, že platí konvencia ALL_PROXY iného klienta.
| Vstup | Kedy ho táto verzia používa |
|---|---|
| Prostredie proxy HTTP/HTTPS | Vyberá sa pri vytváraní agenta. Po zmene týchto koncových bodov vytvorte nový dispatcher. |
no_proxy z prostredia | Znovu sa kontroluje pri odosielaní požiadaviek. |
noProxy v konštruktore | Výslovne nastaví politiku obchádzania namiesto sledovania neskorších zmien prostredia. |
Obchádzanie môže zodpovedať hostiteľom a voliteľným portom; samotná hviezdička obíde proxy pri každej požiadavke. Ak proxy nevidí prevádzku, skontrolujte zhodu cieľa.
Vo Windows hlavný proces nerozlišuje veľkosť písmen názvov prostredia, takže HTTP_PROXY a http_proxy nie sú nezávislé hodnoty. Kópie prostredia Node Worker majú dokumentované rozlišovanie veľkosti písmen. Zohľadnite to, než nastavíte obe podoby na test prednosti. Príklad zavrie dispatcher po práci; ponechajte ho počas opakovaných požiadaviek s tou istou zachytenou politikou koncových bodov.