Niech Undici odczytuje zmienne proxy ze środowiska
Używaj EnvHttpProxyAgent świadomie i odróżniaj pierwszeństwo małych liter, obejścia, zapamiętane URL proxy i dynamiczne no_proxy.
Użyj EnvHttpProxyAgent, gdy trasę ma wybierać środowisko procesu. Wybierz jawny Undici ProxyAgent, gdy punkt końcowy ma należeć do konfiguracji klienta. Przekaż go rzeczywistemu żądaniu; samo utworzenie agenta nie zmienia żadnego wywołania 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();
}Zapisz kod jako proxy-check.mjs w konfiguracji modułów ES z dostępnym Undici. Taki start POSIX przekazuje obie trasy proxy i pustą listę obejść:
http_proxy=http://203.0.113.10:8080 \
https_proxy=http://203.0.113.10:8080 \
no_proxy= \
node proxy-check.mjsZastąp punkt dokumentacyjny swoim proxy HTTP lub kandydatem z listy proxy HTTP. Przypisania dotyczą tego uruchomienia; inne powłoki używają innej składni.
W Undici 8.12.3 zmienne małymi literami http_proxy, https_proxy i no_proxy mają pierwszeństwo przed odpowiednikami wielkimi literami, jeśli istnieją obie formy. Cele HTTP i HTTPS wybierają własne ustawienia. Ustawienie tylko HTTP daje też wariant zastępczy dla HTTPS; samo HTTPS nie zapewnia HTTP. Nie zakładaj, że obowiązuje konwencja ALL_PROXY innego klienta.
| Wejście | Kiedy ta wersja je wykorzystuje |
|---|---|
| Środowisko proxy HTTP/HTTPS | Wybierane przy tworzeniu agenta. Po zmianie tych punktów utwórz nowy dispatcher. |
no_proxy ze środowiska | Sprawdzane ponownie przy wysyłaniu żądań. |
noProxy konstruktora | Jawnie ustala politykę obejść zamiast śledzić późniejsze zmiany środowiska. |
Obejścia mogą dopasowywać hosty i opcjonalne porty; pojedyncza gwiazdka omija proxy dla każdego żądania. Jeśli proxy nie widzi ruchu, sprawdź dopasowanie celu.
W Windows główny proces nie rozróżnia wielkości liter w nazwach środowiska, więc HTTP_PROXY i http_proxy nie są niezależnymi wartościami. Kopie środowiska Node Worker mają udokumentowane rozróżnianie liter. Uwzględnij to przed ustawieniem obu pisowni do testu pierwszeństwa. Przykład zamyka dispatcher po pracy; zachowaj go, gdy powtarzane żądania potrzebują tej samej zapamiętanej polityki punktów.