正确的方式"在一台服务器上托管多个NodeJS域?

时间:2015-10-29 09:40:41

标签: javascript node.js apache nginx mean

我有一个运行Apache的VPS并提供许多WordPress站点。我还设法使用MEAN堆栈在同一个VPS帐户上运行NodeJS服务器。通过这种设置,情况很好。

我决定在同一个服务器上添加第二个NodeJS / MEAN应用程序,在一个单独的端口上运行,一切运行正常 - 除非我注意到一旦我得到所有站点的页面加载性能会产生重大影响第三台服务器正在运行。

我在SO上找到this questionthis question,但这些都没有解决性能问题。所以我的问题是:

是否可以/实际在同一个NodeJS服务器应用程序上运行两个独立/唯一的域?或者是否会产生比它解决的更多问题? (注意:我不是指同一台机器,我的意思是相同的NodeJS实例)

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

1 个答案:

答案 0 :(得分:2)

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

那就是说,我不认为你真的会得到你想要的结果。与大多数(例如JVM)相比,nodejs进程的开销非常小。成本主要来自于您的自定义代码所做的事情。我认为更有可能发生的事情是,您为VPS选择的任何大小的服务器都不足以运行您所投入的所有内容,或者您​​编写的节点应用程序正在通过长时间运行的进程占用事件循环。也可能是Apache是​​生猪的情况;你需要做更多的诊断才能找到它的根源。