单个VPS Droplet上的多个域

时间:2016-09-30 00:38:43

标签: javascript node.js express vps digital-ocean

我有数字海洋的VPS液滴。

我用节点和快递托管我的个人网站(personalweb.site)。

我的快递app.js文件如下所示:

var express = require('express');
var path = require('path');
var app = express();

app.set('port', '80');

app.use(express.static(path.join(__dirname, 'public'))); //my personal site files live here

var server = app.listen(app.get('port'), function() {
  var port = server.address().port;
}

我使用rsync通过ssh将我的内容推送到我的VPS droplet。我的本地文件夹结构与我的VPS Droplet匹配。

cloud/
|── node_modules/
|── public/
|   |── js/
|   |── css/
|   |── index.html
|── app.js
|── Gruntfile.js
|── package.json

然后我使用node app.js & 从我的根目录启动服务器(我使用& 来关闭该终端窗口后保持进程正常运行。)

我的问题是,如何在我的VPS Droplet上托管另一个网站(friendweb.site)?

编辑:关于为什么问题“不好”的简单评论解释怎么样,而不是因为你没有问题的答案而贬低。

1 个答案:

答案 0 :(得分:1)

如果您尝试简单地运行第二个节点应用并将其托管在您的服务器上,那么您将面临一些挑战。顺便说一句,这与Digital Ocean几乎没什么关系,如果有的话。

您面临的最大挑战是,您无法在端口80上监听这两个应用,只有一个应用获胜。因此,除非您希望用户在URL中看到不同的端口号(我怀疑是这种情况),否则您需要考虑设置某种类型的反向代理。例如,可以使用Apachenginx来实现此目的。这样,两个域都可以指向相同的公共IP,两个节点应用程序都可以在不同的端口上侦听,反向代理根据请求的主机名负责将请求路由到每个端口。