节点http-proxy不在代理后面工作

时间:2017-01-24 16:03:36

标签: javascript node.js http-proxy

我正在使用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"

不幸的是我只能获得超时。在没有代理的环境中运行节点脚本时,它按预期工作。

我的配置错了吗?

1 个答案:

答案 0 :(得分:0)

chimuraithis,以了解如何通过 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);