Використовуйте 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 після роботи; зберігайте його, поки повторним запитам потрібна та сама зафіксована політика точок.

Схожі статті