我想在同一台服务器上运行多个Node js应用程序,到目前为止,我对此处的类似问题(下面的链接)进行了一些进度检查解决方案。假设我有2个应用程序,每个应用程序都提供一些html文件,并且我想通过访问https://example.com/app1和https://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);
我的两个子应用程序(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 })
});
问题是,在部署这些应用程序并访问例如https://example.com/app1之后,我什么都没得到。
我在这方面都是超级新手,因此这里可能是初学者的错误。有人可以帮忙吗?
如果要在节点中运行完全不同的应用程序,则可以使用proxy_pass
/reverse proxy
或apache / nginx。为此,您的每个应用程序都应在各自的端口上运行,而其他一些服务器(apache / nginx / etc)则将请求传递给每个端口
我使用这种技术托管了多个节点应用程序,并且它们运行得非常好(nginx比apache快得多)。您可能还会考虑直接阻止从Internet到节点应用程序端口的访问。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句