Вопрос:

Глобальная настройка прокси Node.js

node.js proxy

68850 просмотра

4 ответа

3543 Репутация автора

Я работал в кроп-сети за прокси-сервером. В моем коде я могу установить прокси, используя подход, упомянутый в этой теме ( Как я могу использовать http прокси с node.js http.Client? ).

Но проблема в том, что большинство сторонних модулей не имеют настройки прокси, и я не могу изменить их код, чтобы добавить прокси. Также мой код может использоваться в среде прямого подключения, что означает, что я не могу жестко закодировать настройки прокси в коде.

Я знаю, что у NPM есть глобальная настройка прокси,

Конфигурация npm для настройки прокси http://proxy.company.com:8080
Конфигурация npm установлена ​​https-прокси http://proxy.company.com:8080

Но я не нашел ни одного аналога в Node.js.

Поддерживает ли Node.js глобальную настройку прокси-сервера, поэтому мне не нужно менять все коды и легко включать и выключать.

Автор: Shaun Xu Источник Размещён: 03.09.2013 07:52

Ответы (4)


4 плюса

3543 Репутация автора

Я наконец создал модуль, чтобы решить этот вопрос (частично). В основном этот модуль переписывает http.requestфункцию, добавляет настройки прокси, а затем запускает. Проверьте мой блог: https://web.archive.org/web/20160110023732/http://blog.shaunxu.me:80/archive/2013/09/05/semi-global-proxy-setting-for-node .js.aspx

Автор: Shaun Xu Размещён: 12.12.2013 03:22

21 плюса

85681 Репутация автора

К сожалению, похоже, что информация прокси должна быть установлена ​​при каждом вызове http.request. Узел не включает механизм глобальных настроек прокси.

global-tunnel-ngМодуль на НОМ , кажется, справиться с этим, однако:

var globalTunnel = require('global-tunnel-ng');

globalTunnel.initialize({
  host: '10.0.0.10',
  port: 8080,
  proxyAuth: 'userId:password', // optional authentication
  sockets: 50 // optional pool size for each http and https
});

После того , как глобальные настройки установить с вызовом initialize, как http.requestи requestбиблиотека будет использовать информацию о прокси.

Модуль также может использовать http_proxyпеременную окружения:

process.env.http_proxy = 'http://proxy.example.com:3129';
globalTunnel.initialize();
Автор: apsillers Размещён: 07.01.2015 06:02

1 плюс

350 Репутация автора

Хотя это и не настройка Nodejs, я предлагаю вам использовать прокси-цепочки, которые я считаю довольно удобными. Это, вероятно, доступно в вашем менеджере пакетов.

После настройки прокси в конфигурационном файле ( /etc/proxychains.confдля меня) вы можете запустить proxychains npm startили proxychains4 npm start(т.е. proxychains [command_to_proxy_transparently]), и все ваши запросы будут автоматически проксированы.

Настройки конфигурации для меня:

Это минимальные настройки, которые вы должны будете добавить

## Exclude all localhost connections (dbs and stuff)
localnet 0.0.0.0/0.0.0.0
## Set the proxy type, ip and port here
http    10.4.20.103 8080

(Вы можете получить IP прокси с помощью nslookup [proxyurl])

Автор: Megh Parikh Размещён: 27.07.2017 03:49

0 плюса

76 Репутация автора

замените {userid} и {пароль} своим идентификатором и паролем в своей организации или войдите в систему на своем компьютере.

npm config set proxy http://{userid}:{password}@proxyip:8080/
npm config set https-proxy http://{userid}:{password}@proxyip:8080/
npm config set http-proxy http://{userid}:{password}@proxyip:8080/
strict-ssl=false
Автор: vijay Размещён: 02.04.2019 12:37
Вопросы из категории :
32x32