任何人都可以在此代码中解释选项中的路由器的功能。我从博客那里得到了这段代码。我正在尝试实现节点http-proxy。
var http = require('http'),
httpProxy = require('http-proxy');
//
//Leave out the hostnameOnly field this time, or set it to false...
//
var options = {
router: {
'domainone.com/appone': '127.0.0.1:9000',
'domainone.com/apptwo': '127.0.0.1:9001',
'domaintwo.net/differentapp': '127.0.0.1:9002'
}
}
//
//...and then pass in your options like last time.
//
var proxyServer = httpProxy.createServer(options).listen(80);
//
// ...and a simple http server to show us our request back.
//
http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.write('request successfully proxied!' + '\n' + JSON.stringify(req.headers, true, 2));
res.end();
}).listen(9000);
答案 0 :(得分:0)
代理库将接收所有传入请求,并尝试将其与路由器表中的规则进行匹配。假设它找到匹配项,它会将该请求转发到与您提供的DNS名称关联的IP地址。
例如,转到 domainone.com/appone 的请求将转发到 127.0.0.1:9000
我在这里看到的一个问题是您正在侦听端口9000,并且您的第一条规则将重新路由到 127.0.0.1:9000 。