Nechte Undici číst proměnné proxy z prostředí
Používejte EnvHttpProxyAgent záměrně a rozlišujte přednost malých písmen, pravidla obcházení, zachycené URL proxy a dynamické no_proxy.
Použijte EnvHttpProxyAgent, pokud má cestu volit prostředí procesu. Použijte explicitní Undici ProxyAgent, pokud má koncový bod patřit do konfigurace klienta. Předejte jej skutečnému požadavku; pouhé vytvoření agenta nezmění žádné volání 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 jako proxy-check.mjs v prostředí ES modulů s dostupným Undici. Toto spuštění POSIX předá dvě proxy cesty a prázdný seznam obcházení:
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 vlastní HTTP proxy nebo kandidátem ze seznamu HTTP proxy. Přiřazení patří tomuto spuštění; jiné shelly používají jinou syntaxi.
V Undici 8.12.3 mají malé varianty http_proxy, https_proxy a no_proxy přednost před velkými protějšky, existují-li obě. Cíle HTTP a HTTPS si volí vlastní nastavení. Samotné nastavení HTTP poskytuje i zálohu pro HTTPS; samotné HTTPS neposkytuje HTTP. Nepředpokládejte, že platí konvence ALL_PROXY jiného klienta.
| Vstup | Kdy jej tato verze používá |
|---|---|
| Prostředí proxy HTTP/HTTPS | Volí se při vytváření agenta. Po změně těchto koncových bodů vytvořte nový dispatcher. |
no_proxy z prostředí | Znovu se kontroluje při odesílání požadavků. |
noProxy v konstruktoru | Výslovně nastaví politiku obcházení místo sledování pozdějších změn prostředí. |
Obcházení může odpovídat hostitelům a volitelným portům; samotná hvězdička obejde proxy pro každý požadavek. Pokud proxy nevidí provoz, zkontrolujte shodu cíle.
Ve Windows hlavní proces nerozlišuje velikost písmen v názvech prostředí, takže HTTP_PROXY a http_proxy nejsou nezávislé hodnoty. Kopie prostředí Node Worker mají dokumentované rozlišování velikosti písmen. Zohledněte to, než nastavíte obě podoby kvůli testu přednosti. Příklad zavře dispatcher po práci; ponechte jej po dobu opakovaných požadavků se stejnou zachycenou politikou koncových bodů.