Нека 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 по работата; задржете го додека повторени барања ја бараат истата зачувана политика на точките.