首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使Node.js使用http_proxy、https_proxy和no_proxy环境变量

使Node.js使用http_proxy、https_proxy和no_proxy环境变量
EN

Stack Overflow用户
提问于 2016-06-08 04:15:58
回答 2查看 7K关注 0票数 4

我有一台节点服务器,根据最近的一些基础架构更改,我需要确保除到NO_PROXY环境变量中列出的主机的流量外,所有出站请求都通过Squid代理。

设置HTTP_PROXY、HTTPS_PROXY和NO_PROXY似乎不会影响节点服务器的行为,但我需要一种方法来做到这一点,而不必手动编辑库。我有大约10个库,它们可以接触到需要尊重这种代理行为的外部服务。

有没有其他方法可以全局设置代理行为,包括尊重NO_PROXY?

EN

回答 2

Stack Overflow用户

发布于 2020-12-23 09:59:56

不幸的是,Node.js运行时不支持使用开箱即用的环境变量配置HTTP代理(请参阅nodejs/node#8381nodejs/node#15620)。请求库支持是混合的:

任何提供传递支持环境配置代理的http.Agent的方法的库,例如:

例如:

代码语言:javascript
运行
复制
import fetch from 'node-fetch';
import ProxyAgent from 'proxy-agent';

const response = await fetch('https://example.com', { agent: new ProxyAgent() });
const body = await response.text();

如果你不能传递一个Agent,或者根本不能修改代码,你可以考虑使用global-agent作为一个预加载的模块来代理所有请求(由GLOBAL_AGENT_HTTP_PROXY环境变量配置):

代码语言:javascript
运行
复制
export GLOBAL_AGENT_HTTP_PROXY=http://proxy.example.com
node --require global-agent/bootstrap mycode.js

或者,如果您的系统支持LD_PRELOADDYLD_INSERT_LIBRARIES,则可以使用通用代理程序,如ProxyChains-NG (或原始ProxyChains)。

票数 2
EN

Stack Overflow用户

发布于 2018-01-30 00:14:16

为了防止有人到达这里,它似乎已经被添加到https://github.com/request/request/pull/1096中的request.js中了

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37688508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档