使用Node.js,我们可以将一个域/端口(一个源)映射到两个本地Web服务器吗?

时间:2016-02-21 03:15:06

标签: node.js

我们的项目已经安装了Node.js,我们使用以下命令运行2个可访问的Web服务器:

  

http://127.0.0.1:8000
  http://127.0.0.1:9000

但是,第二个网站需要对第一个服务器执行AJAX,而跨域策略会阻止这一点。使用Node.js(可能由http-server),我们可以映射:

  

http://127.0.0.1:8080/datahttp://127.0.0.1:8000

并映射

上的所有其他内容
  

http://127.0.0.1:8080http://127.0.0.1:9000

只使用几行?

1 个答案:

答案 0 :(得分:0)

请尝试使用node http proxy进行操作,如下所示。

var proxyPort = 8080;
var http = require('http');
var httpProxy = require('http-proxy');

var options = {
    router: {
        'localhost': '127.0.0.1:9000',
    }
};

var proxyServer = httpProxy.createServer(options);
proxyServer.listen(proxyPort);

或按照此answer创建一个代理原生。

 var net = require('net');
// parse "80" and "localhost:80" or even "42mEANINg-life.com:80"
var addrRegex = /^(([a-zA-Z\-\.0-9]+):)?(\d+)$/; 
var addr = {
    from: addrRegex.exec(process.argv[2]),
    to: addrRegex.exec(process.argv[3])
};    
if (!addr.from || !addr.to) {
    console.log('Usage: <from> <to>');
    return;
}    
net.createServer(function(from) {
    var to = net.createConnection({
        host: addr.to[2],
        port: addr.to[3]
    });
    from.pipe(to);
    to.pipe(from);
}).listen(addr.from[3], addr.from[2]);