5

我试图找出完成此操作的最佳方法;基本上我有大约6个网站需要上网,但目前他们的流量几乎为零,为了省钱,他们需要部署在同一台服务器上(理想情况下,我们将使用AWS的Elastic BeanStalk)。组合多个node.js web应用程序

有没有一种方法可以像普通一样编写每个Web应用程序(以便将来可以轻松地将它们转移到专用服务器),但有一个app.js入口点可以根据网址是什么?

很明显,这并不理想,但我想到了几种方法来做到这一点,但我希望尽可能不要做傻事,以便稍后可以轻松地移动网站。

+0

这有什么错运行它们作为单独的进程?如果您只是想将请求转发到特定的节点,我认为很多人正在使用nginx。 –

+0

老实说不多;真的在寻找一个临时和快速的解决方案,因为我们已经在Elastic BeanStalk中设置了一些东西,所以如果重新使用它,不会让我们陷入困境。但是,这是一个选择(和更合适的一个)。 – Kris

回答

4

使用connect vhost。 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; 
+0

是的,这是完美的;显然我没有意识到vhost可以与整个应用程序一起工作,但这是有道理的。谢谢!希望很快它可以转移到更好的解决方案。 – Kris

+0

嗨,大家好,这是否意味着Elastic Beanstalk App会根据需要进行扩展,例如只有其中一个应用程序获得高流量/使用率?我正在寻找一种方法来部署几个nodeJS应用程序,这些应用程序需要进行扩展,但每个应用程序没有单独的服务器。说得通? – Davo

相关问题