Node может сам читать переменные окружения прокси, если его встроенная поддержка включена при запуске процесса. Доступные клиенты зависят от версии среды выполнения:

  • Встроенный fetch поддерживает NODE_USE_ENV_PROXY начиная с Node 24.0.0, с обратным переносом на 22.21.0.
  • Встроенная поддержка node:http и node:https через их глобальные агенты по умолчанию начинается с 24.5.0, также перенесена обратно на 22.21.0.
  • Переключатель командной строки --use-env-proxy начинается с 24.5.0 и 22.21.0.

В совместимом выпуске этот пример POSIX-shell задаёт один корпоративный HTTP-прокси для обеих схем назначения:

export HTTP_PROXY=http://proxy.example.net:8080
export HTTPS_PROXY=http://proxy.example.net:8080
export NO_PROXY=localhost,127.0.0.1,.internal.example

node --use-env-proxy app.js

Имя HTTPS_PROXY выбирает маршрут для назначений HTTPS; URL всё ещё может указывать на HTTP-прокси. Настройте NO_PROXY для назначений, которые должны его обходить. Для независимого теста публичного URL без учётной записи прокси HTTP-запись из списка HTTP-прокси может предоставить оба значения прокси, при этом необходимые внутренние обходы сохраняются.

Форма с переключателем окружения — альтернатива:

export NODE_USE_ENV_PROXY=1
node app.js

Задайте переменные маршрутизации перед запуском Node в любой из форм. Присвоение флага opt-in к process.env после запуска не запускает инициализацию запуска повторно.

Проверьте, какой HTTP-клиент действительно используется

Глобальные агенты по умолчанию важны для вызовов http и https, которые их используют. Библиотека с собственным нестандартным агентом или диспетчером управляет своим транспортом; сырые TCP-сокеты находятся вне этой функции маршрутизации HTTP. Для совместимого клиента Undici явный диспетчер ProxyAgent — это отдельный локальный интерфейс клиента.

Если приложение заменяет глобальный агент, проверьте эту замену, прежде чем предполагать, что она сохраняет поведение прокси при запуске. Аналогично, конфигурация реестра npm — это отдельная настройка инструмента, и она не доказывает, как app.js маршрутизирует запросы.

Для корпоративного требования доверия TLS настройте подходящий доверенный CA для среды выполнения. Включение маршрутизации через прокси не требует отключения проверки сертификатов.

Похожие статьи