我有一个运行 Apache 并为多个 WordPress 网站提供服务的 VPS。我还设法使用 MEAN 堆栈在同一个 VPS 帐户上运行 NodeJS 服务器。使用此设置一切正常。
我决定向同一台服务器添加第二个 NodeJS/MEAN 应用程序,在单独的端口上运行,一切都运行良好 - 除了我注意到一旦获得第三个应用程序,所有站点的页面加载性能都会受到重大影响服务器正在运行。
我找到了this question和 this question这里是关于SO,但是这些都没有解决性能问题。所以我的问题是:
是否有可能/实际在同一个 NodeJS 服务器应用程序上运行两个独立/唯一的域? 或者这会产生比它解决的问题更多的问题吗? (注意:我不是指同一台机器,而是指同一个 NodeJS 实例)
如果没有,如何提高性能?升级我的 VPS 是唯一的选择吗?
最佳答案
因此您确实可以在同一端口/进程上运行多个应用程序。如果您需要按域分隔,可以使用 express-vhost
模块来完成此操作。您还可以使用 cluster 模块来运行共享资源的进程池(尽管它们最终是相同的“应用程序”,您可以将其与 vhost 方法结合起来以获得进程池服务多个域。
也就是说,我认为您实际上不会得到您想要的结果。与大多数进程(例如 JVM)相比,nodejs 进程的开销相当微不足道;成本主要来自于您的自定义代码正在执行的操作。我认为更有可能发生的情况是,无论您为 VPS 选择多大的服务器,都不足以运行您扔给它的所有内容,或者您编写的 Node 应用程序在长时间运行的进程中占用了事件循环。也有可能 Apache 是霸主。您需要进行更多诊断才能找到问题的根源。
关于javascript - "right way"在一台服务器上托管多个 NodeJS 域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33410623/