javascript - "right way"在一台服务器上托管多个 NodeJS 域?

标签 javascript node.js apache nginx mean

我有一个运行 Apache 并为多个 WordPress 网站提供服务的 VPS。我还设法使用 MEAN 堆栈在同一个 VPS 帐户上运行 NodeJS 服务器。使用此设置一切正常。

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

我找到了this questionthis 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/

相关文章:

python - 尝试从 WSGI/Python 启动 Chrome(确实又快又脏)[Win。 XP、x86、Python 2.7、Apache 2.2]

windows - 我们如何在同一台 Windows 7 机器上运行 Apache Http Server 的两个实例

javascript - 如果存在其他类,则隐藏特定的 DIV 类

javascript - 创建一个模拟类构造函数的方法

javascript - HTML5 退出视频全屏

javascript - Discord Bot 未接收交互

node.js - Node mysql2 异步等待 try catch

node.js - Stripe 订阅附加组件和功能

javascript - 如何在检查 p :selectBooleanCheckbox 时打开确认对话框

macos - 为什么Apache拒绝在OSX上连接到localhost 127.0.0.1?