Дазвольце 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 пасля працы; захоўвайце яго, пакуль паўторным запытам патрэбная тая самая зафіксаваная палітыка пунктаў.