我正在使用http-proxy-middleware模块,这是一个快速中间件。中间件模块依赖于http-proxy。节点主机在代理后面运行。 我想将某些路由转发到不同的服务(出于测试目的,我们假设为httpbin.org)。所以我将代理定义如下。
var proxy = require('http-proxy-middleware');
var aeProxy = proxy({
target: 'http://httpbin.org',
changeOrigin: true,
pathRewrite: {
'^/api/ae':'/get'
}
});
app.use('/api/ae', proxy);
我还设置了各自的env变量(来自调试控制台):
process.env.HTTP_PROXY
> "http://proxy:8080"
process.env.HTTPS_PROXY
> "http://proxy:8080"
不幸的是我只能获得超时。在没有代理的环境中运行节点脚本时,它按预期工作。
我的配置错了吗?
答案 0 :(得分:0)
向chimurai致this,以了解如何通过 agent 字段通过公司代理进行连接。
var HttpsProxyAgent = require('https-proxy-agent');
var proxy = require("http-proxy-middleware");
// corporate proxy to connect to via environment variables
var proxyServer = process.env.HTTPS_PROXY ||
process.env.HTTP_PROXY;
var options = {
target: 'http://localhost:3000',//Proxy url
agent: new HttpsProxyAgent(proxyServer)//The actual corporate proxy sever
};
var apiProxy = proxy('/api', options);