节点http-proxy模块用于实现转发代理的问题

时间:2015-12-18 19:02:21

标签: node.js proxy node-http-proxy

我正在使用nodejitsu node-http-proxy模块来实现转发代理。这是我的简化代码:

var httpApp   = require('express')(),
    http      = require('http'),
    httpProxy     = require('http-proxy');

httpServer = http.createServer(httpApp);
proxy = httpProxy.createProxyServer({xfwd:true,ws:true});

httpApp.use(function(req,res) {
 proxy.web(req,res, {xfwd: true, agent:http.globalAgent, 
       ws:true, target:req.originalUrl }, function(err){console.log(err);});
});
httpServer.listen(5000);

这个代码适用于几个测试站点,但我知道它就像他们说的那样好得令人难以置信。当我尝试更多的URL时,它失败了。我会看到显示好像我的带宽很差或者显示器上会丢失一两个图像。

为简单起见,我没有包含ws或https的代码。事实上,我注释掉了代码,看看这是否有效。我有一个反向代理使用相同的代理模块正常工作。我注意到文档中的所有示例都有用于反向代理的硬连接目标URL。

测试用例: 例如,cnbc.com工作正常,但是当我点击链接时,它会返回404找不到。

我正在使用/ etc / environment中设置的代理环境变量在Firefox上进行测试。这似乎没问题,因为它确实会在正确的端口上找到正确的代理服务器。我在chrome下的同一台机器上尝试相同的URL而没有设置代理选项,这些URL显示得很好。

问题:我的转发代理代码中没有解决的问题是什么?

0 个答案:

没有答案