在同一服务器上运行多个 Node.js 应用程序

1 javascript node.js express

我想在同一台服务器上运行多个 Node js 应用程序,到目前为止,我在这里为类似问题做了一些进度检查解决方案(下面的链接)。假设我有 2 个应用程序,每个应用程序都提供一些 html 文件,我想通过访问 https://example.com/app1https://example.com/app2
来访问每个 应用程序 到目前为止,我有我的主应用程序,我的方法是调用这个应用程序,然后它将客户端重定向到这两个应用程序之一。
我的主要应用程序如下所示:

const express = require('express');
const app = express();

app
  .use('/app1', require('./app1/index.js'))
  .use('/app2', require('./app2/index.js'))
  .listen(80);

Run Code Online (Sandbox Code Playgroud)

我的两个子应用程序(app1 和 app2)都是这样的

const express = require('express');
const bodyParser = require('body-parser');
const routes = require('./routes/api');
const mongoose = require('mongoose');
require('dotenv/config');

const app = express();

mongoose.connect(
    process.env.DB_CONNECTION,
    { useNewUrlParser: true, useUnifiedTopology: true }, () =>
    console.log('Connected to DB')
);
mongoose.Promise = global.Promise;

app.use(express.static('public'));
app.use(bodyParser.json());

app.use('/', routes); 

app.use(function (err, req, res, next) {
    res.status(422).send({ error: err.message })
});
Run Code Online (Sandbox Code Playgroud)

问题是,在部署这些应用程序并访问例如https://example.com/app1
后我没有得到任何东西 ,我对这一切都是超级新的,所以这里可能是初学者的错误。有人可以帮忙吗?

相关问题如何挂载express.js子应用程序?在同一端口上运行多个节点(Express)应用程序

Set*_*eti 6

如果你想在节点中运行完全不同的应用程序,你可以使用apache/nginx 的proxy_pass/ 。reverse proxy为此,您的每个应用程序都应该在自己的端口上运行,并且其他一些服务器(apache/nginx/等)将请求传递给每个应用程序

我使用这种技术托管了几个节点应用程序,它们工作得非常好(nginx 比 apache 快得多)。此外,您可能会考虑直接阻止从互联网到节点应用程序端口的访问。