我正在使用 Nodejitsu 的 http 代理来构建一个监控网络流量的工具。
httpProxy.createProxyServer({
target: 'http://localhost:9000'
})
.listen(8000);
util.puts('proxy server listening on port 8000');
http.createServer(function targetServer(req, res) {
res.writeHead(302, { 'Location': req.headers.host });
util.puts('request successfully proxied to: ' + req.url + '\n' + JSON.stringify(req.headers, true, 2));
res.end();
})
.listen(9000);
util.puts('target server listening on port 9000');
我想做的是
- 代理从客户端(浏览器)到我的目标服务器的传出请求
- 从我的目标服务器将它们发送到其原始目标网址
- 在我的目标服务器上接收响应
- 将响应发送回客户端
基本上在客户端和目标服务器之间放置了一个中间人,这样我就可以监控流量。但是,当我尝试执行此操作时,一旦发出 302 请求,就会出现ECONN
错误。
Error: connect ECONNREFUSED
at errnoException (net.js:901:11)
at Object.afterConnect [as oncomplete] (net.js:892:19)
谁能帮我弄清楚发生了什么
更新
我像这样更改了 302Location
参数:
res.writeHead(302, { 'Location': '/' });
现在,当浏览器尝试访问我的代理服务器时,它会进入重定向循环。为什么会这样?