目前,我正在通过一个server.js文件运行两个(很快将是三个)node.js websocket应用程序。我正在使用express服务我的整个页面,以及我编写的粒子物理“游戏”。我还将创建一个聊天室,以了解更多有关这些内容的信息。
我的问题(或缺少它?)是所有这些都通过一个server.js文件运行。Heroku似乎需要这样做,所以我不确定是否还有其他选择。Heroku是我用来托管它的。
我的问题是,这是不好的做法吗?我还有其他需要做的事情吗?我所有的“应用”流量都很低,所以我认为这不是一个大问题。我只是想从一开始就学习最佳实践,所以我不会犯愚蠢的错误。谢谢。
编辑:如何通过procfile设置专门在Heroku中拆分应用程序?
我认为,如果应用程序不相关,这是一个不好的做法。如果资源可以处理,那么在同一台物理或虚拟服务器上运行3个节点应用程序本身也不错。但是,通过相同的Server.js文件运行它们会导致很多事情不属于它们。考虑以下情况:应用程序1中的致命错误关闭了(或影响了性能)应用程序2或应用程序3。
您应该通过将每个应用程序划分为监听不同端口的单独实例来封装每个应用程序,然后使用快速反向代理(读取:nginx)从Web上对其进行代理。您可以创建无状态库来封装任何共享功能,然后在需要它的每个应用程序中包含这些库。
例如
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句