我想在同一台服务器上运行多个 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);
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
后我没有得到任何东西
,我对这一切都是超级新的,所以这里可能是初学者的错误。有人可以帮忙吗?
如果你想在节点中运行完全不同的应用程序,你可以使用apache/nginx 的proxy_pass/ 。reverse proxy为此,您的每个应用程序都应该在自己的端口上运行,并且其他一些服务器(apache/nginx/等)将请求传递给每个应用程序
我使用这种技术托管了几个节点应用程序,它们工作得非常好(nginx 比 apache 快得多)。此外,您可能会考虑直接阻止从互联网到节点应用程序端口的访问。
| 归档时间: |
|
| 查看次数: |
14612 次 |
| 最近记录: |