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