编程语言
首页 > 编程语言> > javascript-使用express.vhosts()在多个域上的Node.js

javascript-使用express.vhosts()在多个域上的Node.js

作者:互联网

我回到这里遇到一个nodejs问题,我正在编写一个节点服务器,该服务器允许使用express.vhost()在同一系统上运行两个或多个app.js.但是我现在很迷茫.

webhost服务器是运行Ubuntu和plesk的专用服务器,我为不同的域分配了2个IP.

xxx.xxx.xxx.123 IP已分配给domain-one.com
xxx.xxx.xxx.xxx.456被分配给domain-two.com

都运行一个nodejs服务器app.js
并分别分配在/ var / www / vhosts / [域名] /node/app.js中

运行虚拟主机的服务器位于/var/www/node/server.js,这里是代码

var express = require("express");
var app = express();

app
.use(express.vhost('domain-one.com', require('/var/www/vhosts/domain-one.com/node/app.js').app))
.use(express.vhost('domain-two.com', require('/var/www/vhosts/domain-two.com/node/app.js').app))
.listen(3030);


app.get('/', function(req, res){
  res.send('hello world the server running ');
});

在每个app.js中

var express = require('express'),
    routes  = require('./routes');

var app = exports.app = express.createServer();

app.get('/', function(req, res){
  res.send('hello world test file for [domain-name] running');
});

//port 3031 for domain-one.com
//port 3032 for domain-two.com
app.listen(3031); 

然后我运行节点server.js,一切正常,没有错误.

然后我运行一个netstat -anltp

tcp        0      0 0.0.0.0:3030            0.0.0.0:*               LISTEN      19839/node      
tcp        0      0 0.0.0.0:3031            0.0.0.0:*               LISTEN      19839/node      
tcp        0      0 0.0.0.0:3032            0.0.0.0:*               LISTEN      19839/node  

好的,一切按我预期的进行(我想),所以我打开浏览器并键入domain-one.com:3031并在其他选项卡中键入domain-two.com:3032

但是在两个域中都下降了连接超时…并且当我运行domain-one.com:3030时,它显示:

hello world the server running

但不在domain-two.com:3030中也挂起.

我想了解这一点,并了解一下我的服务器和域如何工作以及如何在服务器中为不同的IP /域运行不同的Node.js应用…

somethimes在domain-two.com上打印出domain-one.com app.js文件res.send()应该在其他域上打印的内容…

我想我现在很困惑.希望您能帮助我.

非常感谢

-伊凡

解决方法:

使用这种简单而精确的语法可能会更好:
https://github.com/expressjs/vhost

//
// Module dependencies
//
var express = require('express');
var vhost = require('vhost');
var app = express();


//
// vhosts
//
app
  .use(vhost('app1.io', require('./app1/app.js')))
  .use(vhost('app2.io', require('./app2/app.js')))
  .use(vhost('app3.io', require('./app3/app.js')))
  .listen(8080);

标签:vhosts,node-js,ip,express,javascript
来源: https://codeday.me/bug/20191031/1975726.html