我正在使用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显示得很好。
问题:我的转发代理代码中没有解决的问题是什么?