Нека Undici чете прокси променливите от средата
Използвайте EnvHttpProxyAgent съзнателно и разграничете приоритета на малките букви, заобикалянето, запазените прокси URL и динамичното no_proxy.
Използвайте EnvHttpProxyAgent, когато средата на процеса трябва да избира маршрута. Използвайте изричен Undici ProxyAgent, когато крайната точка принадлежи на конфигурацията на клиента. Подайте го на действителната заявка; само създаването на агента не променя нито едно 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();
}Запазете кода като proxy-check.mjs в ES-модулна среда с наличен Undici. Това POSIX стартиране задава двата прокси маршрута и празен списък за заобикаляне:
http_proxy=http://203.0.113.10:8080 \
https_proxy=http://203.0.113.10:8080 \
no_proxy= \
node proxy-check.mjsЗаменете документационната точка с вашето HTTP прокси или кандидат от списъка с HTTP прокси. Присвояванията важат за това извикване; други обвивки използват различен синтаксис.
В Undici 8.12.3 малките http_proxy, https_proxy и no_proxy имат приоритет пред съответните главни, когато съществуват и двете форми. HTTP и HTTPS целите избират собствени настройки. Само HTTP настройка осигурява и резерв за HTTPS; само HTTPS не осигурява HTTP. Не приемайте, че важи конвенцията ALL_PROXY на друг клиент.
| Вход | Кога тази версия го използва |
|---|---|
| HTTP/HTTPS прокси среда | Избира се при създаване на агента. Създайте нов dispatcher след промяна на тези точки. |
no_proxy от средата | Проверява се отново при изпращане на заявките. |
noProxy в конструктора | Изрично фиксира политиката за заобикаляне, вместо да следва по-късни промени в средата. |
Заобикалянията могат да съвпадат с хостове и незадължителни портове; една звездичка заобикаля проксито за всички заявки. Проверете съвпадението на целта, ако проксито не вижда трафик.
В Windows главният процес не различава регистъра на имената в средата, затова HTTP_PROXY и http_proxy не са независими стойности. Копията на средата в Node Worker имат документирано разграничение по регистър. Вземете го предвид, преди да зададете двете изписвания за тест на приоритета. Примерът затваря dispatcher след работата; пазете го, докато повтарящи се заявки изискват същата запазена политика на точките.