多个Node.js“应用程序”在一个服务器文件不好的做法?

目前,我通过一个server.js文件运行两个(即将成为三个)node.js websocket应用程序。 我使用快递服务我的整个页面,以及我写的粒子物理“游戏”。 我也会做一个聊天室,只是为了更多地了解这些事情。

我的问题(或缺乏?)是所有这一切都通过一个server.js文件运行。 Heroku似乎需要这个,所以我不确定是否有其他的select。 Heroku是我用来主办的。

我的问题是,这是不好的做法? 还有什么我应该做的,我失踪了? 我所有的“应用程序”都是非常低的stream量,所以我不认为这是一个大问题。 我只是想从一开始就学习最好的实践,所以我不犯愚蠢的错误。 谢谢。

编辑:我如何专门分割在Heroku的应用程序与procfile安装程序?

在我看来,这是一个不好的做法,如果应用程序不相关。 在同一物理或虚拟服务器上运行3个节点的应用程序本身并不坏,如果资源可以处理的话。 但是,通过同一个Server.js文件运行它们会导致很多事情不应该属于它们。 考虑应用程序1中致命错误closures(或妨碍性能)的应用程序2或应用程序3的情况。

您应该将每个应用程序封装为不同的实例,这些实例在不同的端口上侦听,然后使用快速反向代理(读取:nginx)从Web代理它们。 您可以创build无状态库来封装任何共享function,然后在每个需要它的应用程序中包含这些库。

例如

app.yourserver.com => localhost:8997 (node app 1) app2.yourserver.com = localhost:8998 (node app 2) app3.yourserver.com => localhost:8999 (node app 3) 

以下是有关如何使用nginx设置反向代理的信息: http : //nginx.com/resources/admin-guide/reverse-proxy