“;正确的方式”;在单个服务器上托管多个NodeJS域

The "right way" to host multiple NodeJS domains on a single server?

本文关键字:NodeJS 服务器 单个 方式      更新时间:2023-09-26

我有一个VPS,它运行Apache并为许多WordPress网站提供服务。我还设法使用MEAN堆栈在同一个VPS帐户上运行了一个NodeJS服务器。这种设置运行良好。

我决定在同一台服务器上添加第二个NodeJS/MMEAN应用程序,在一个单独的端口上运行,一切都很好——只是我注意到,一旦我运行了第三台服务器,所有网站的页面加载性能都会受到重大影响。

我在SO上发现了这个问题和这个问题,但这两个问题都没有解决性能问题。所以我的问题是:

在同一个NodeJS服务器应用程序上运行两个独立/唯一的域是否可行还是这会造成比解决更多的问题?(注意:我指的不是同一台机器,我指的是同一个NodeJS实例)

如果没有,如何提高性能升级我的VPS是唯一的选择吗?

因此,您确实可以在同一端口/进程上运行多个应用程序。如果需要按域进行分离,可以使用express-vhost模块来完成此操作。您还可以使用cluster模块来运行共享资源的进程池(尽管它们最终是同一个"应用程序",但您可以将其与vhost方法相结合,使进程池为多个域提供服务。

也就是说,我不认为你真的会得到你想要的结果。与大多数进程(例如JVM)相比,nodejs进程的开销是微不足道的;成本主要来自于您的自定义代码所做的任何事情。我认为更可能发生的情况是,无论你为VPS选择了什么大小的服务器,都不足以运行你扔给它的所有东西,或者你编写的节点应用程序在长时间运行的过程中占据了事件循环。阿帕奇也可能是猪;你需要做更多的诊断才能找到它的根源。