Node.js 在Nodejs中实现反向代理
我正在尝试使用nodejs创建一个反向代理,在这里我可以映射不同的 指向各种网站的组合 以下是我的第一次尝试代码:Node.js 在Nodejs中实现反向代理,node.js,reverse-proxy,Node.js,Reverse Proxy,我正在尝试使用nodejs创建一个反向代理,在这里我可以映射不同的 指向各种网站的组合 以下是我的第一次尝试代码: var http = require('http'), httpProxy = require('http-proxy'); httpProxy.createServer(function (req, res, proxy) { proxy.proxyRequest(req, res, { host: 'www.yahoo.com', port: 80 }); }).
var http = require('http'),
httpProxy = require('http-proxy');
httpProxy.createServer(function (req, res, proxy) {
proxy.proxyRequest(req, res, {
host: 'www.yahoo.com',
port: 80
});
}).listen(8000);
很好,但如果我有一整套的组合。我不知道该怎么做
我的第二次尝试
var http = require('http'),
httpProxy = require('http-proxy');
var mapping = {
hostnameOnly: true ,
router : {
'127.0.0.1:8000' : 'www.google.com' ,
'127.0.0.1:8001' : 'www.yahoo.com'
}
}
var proxyserver = httpProxy.createServer(mapping).listen (80) ;
这甚至不起作用,我不知道为什么
我所要做的就是创建一个简单的应用程序,在这个应用程序中我映射到域
把那些书页拿来。
我仍在了解nodejs,因此如果这个问题听起来很可笑,我很抱歉。您的第二次尝试失败,因为
hostnameOnly
规范不接受路由路径中的端口。从:
不过,你的思路是对的。看见如果省略
hostnameOnly
参数,它应该可以正常工作。第二次尝试失败,因为hostnameOnly
规范不接受路由路径中的端口。从:
不过,你的思路是对的。看见如果省略
hostnameOnly
参数,它应该可以正常工作。不完全是一个答案,但这里有一些提示可以帮助您诊断问题。NodeJS将所有依赖项存储在node_模块下。节点_模块下的依赖项只是js文件。节点http代理等依赖项完全用JavaScript编写,因此您可以更改它们。只需转到node_模块下的node http proxy并添加一些console.log()。这应该会有帮助。这不是一个确切的答案,但这里有一些提示可以帮助你诊断问题。NodeJS将所有依赖项存储在node_模块下。节点_模块下的依赖项只是js文件。节点http代理等依赖项完全用JavaScript编写,因此您可以更改它们。只需转到node_模块下的node http proxy并添加一些console.log()。这应该会有帮助。
var options = {
hostnameOnly: true,
router: {
'foo.com': '127.0.0.1:8001',
'bar.com': '127.0.0.1:8002'
}
}