프로세스 환경이 경로를 선택하게 하려면 EnvHttpProxyAgent를 사용하세요. 엔드포인트를 클라이언트 설정에 두려면 명시적인 Undici ProxyAgent를 사용합니다. 실제 요청에 전달해야 하며 agent만 생성해서는 어떤 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();
}

Undici를 사용할 수 있는 ES 모듈 환경에서 코드를 proxy-check.mjs로 저장합니다. 다음 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 프록시 환경 변수agent 생성 시 선택됩니다. 엔드포인트를 바꾸면 새 dispatcher를 만드세요.
환경 변수 no_proxy요청을 분배할 때 다시 확인합니다.
생성자 옵션 noProxy나중의 환경 변화를 따르지 않고 우회 정책을 명시적으로 고정합니다.

우회 항목은 호스트와 선택적 포트에 맞출 수 있으며 별표 하나만 쓰면 모든 요청이 우회합니다. 프록시에 트래픽이 없다면 목적지 일치 여부를 확인하세요.

Windows의 메인 프로세스는 환경 변수 이름에서 대소문자를 구분하지 않으므로 HTTP_PROXY와 http_proxy는 별개의 값이 아닙니다. Node Worker 환경 사본에는 문서에 명시된 대소문자 구분이 있습니다. 두 표기를 설정해 우선순위를 시험하기 전에 이를 고려하세요. 예제는 작업이 끝난 뒤 dispatcher를 닫습니다. 같은 캡처된 엔드포인트 정책으로 요청을 반복하는 동안에는 유지하세요.

관련 글