组合多个 node.js Web 应用程序
Posted
技术标签:
【中文标题】组合多个 node.js Web 应用程序【英文标题】:Combine multiple node.js web applications 【发布时间】:2013-09-02 09:53:42 【问题描述】:我正在尝试找出实现这一目标的最佳方法;基本上我有大约 6 个网站需要上网,但目前它们的流量几乎为零,因此为了节省资金,它们需要部署在同一台服务器上(理想情况下,我们将使用 AWS 的 Elastic BeanStalk)。
有没有一种方法可以像平常一样基本上编写每个 Web 应用程序(以便将来可以轻松地将它们转移到专用服务器),但有一个 app.js 入口点可以根据 URL 适当地加载节点应用程序?
显然这并不理想,但我已经想到了几种方法来做到这一点,但我希望尽可能不被黑客攻击,以便以后可以轻松移动网站。
【问题讨论】:
将它们作为单独的进程运行有什么问题?如果您只是想将请求转发到特定节点,我想很多人都在使用 nginx。 老实说不多;真的是在寻找一个临时且快速的解决方案,因为我们已经在 Elastic BeanStalk 中设置了一些东西,所以在不把我们搞砸的情况下重用它会很棒。但是,是的,这是一种选择(也是更合适的选择)。 【参考方案1】:使用连接虚拟主机。 http://www.senchalabs.org/connect/vhost.html
var express = require('express'),
main = express();
main.use(express.vhost('*.site1.com', require('../site1')));
main.use(express.vhost('*.site2.com', require('../site2')));
main.listen(80);
../site1/index.js
可能看起来像这样:
var express = require('express'),
app = express();
app.get('/', function(req, res) res.send('Home Page'); );
module.exports = app;
【讨论】:
是的,这很完美;显然我没有意识到 vhost 可以与整个应用程序一起使用,但这是有道理的。谢谢!希望很快它可以转移到更好的解决方案。 大家好,这是否意味着 Elastic Beanstalk 应用程序将根据需要进行扩展,例如,如果只有一个应用程序获得高流量/使用率?我正在寻找一种方法来部署几个需要扩展的 nodeJS 应用程序,但每个应用程序没有一个单独的服务器。有意义吗?以上是关于组合多个 node.js Web 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
Express - 基于 Node.js 平台的 web 应用开发框架
如何通过 firebase 托管在 firebase 上托管 node.js Web 应用程序(包含多个文件夹)?