单个 VPS 液滴上的多个域

Multiple domains on single VPS droplet

我有一个 VPS Digital Ocean 的 drop。

我用 node 和 express 在上面托管我的个人网站 (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 & 从我的根目录启动服务器(我使用 & 在我之后保持进程 运行关闭那个终端 window.)

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

编辑: 一个简单的评论解释为什么问题是 "bad",而不是因为你没有问题的答案而投反对票怎么样。

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

您将面临的最大挑战是您不能让两个应用程序都侦听端口 80,只有一个应用程序胜出。因此,除非您希望用户看到不同的端口号作为 URL 的一部分(我怀疑是这种情况),否则您需要考虑设置某种反向代理。例如,这可以通过 Apache or nginx 来实现。这样两个域都可以指向相同的 public IP,两个节点应用程序可以侦听不同的端口,反向代理负责根据请求的主机名将请求路由到每个应用程序。