如何防止 Node.js Web 服务器停机

Posted

技术标签:

【中文标题】如何防止 Node.js Web 服务器停机【英文标题】:How to prevent downtime on Node.js web server 【发布时间】:2021-12-07 13:17:34 【问题描述】:

我有一个 Node.js Web 应用程序和一个 postgres 数据库,托管在我本地网络上的树莓派上。在工作日期间,它们会被本地网络上的其他设备频繁访问,任何系统停机都会导致操作延迟或失败。

此问题有哪些可能的解决方案?我是否需要使用 Heroku 之类的东西来部署 Node.js Web 应用程序,或者有没有一种方法可以通过在多台不同的机器上托管 Node.js Web 应用程序来增加冗余,以允许应用程序在发生崩溃时继续运行?

【问题讨论】:

【参考方案1】:

您可以为 node.js 使用一些进程管理器,例如 PM2。你可以为你的 nodejs 服务器设置重启策略。当它压碎 PM2 时,它会重新启动它。请参阅此docs。它还可以在集群模式下运行您的 nodejs 应用程序 - 您可以拥有应用程序的单独实例,PM2 将在它们之间分配所有请求。 此外,如果您的 nodejs 进程由于发生某些错误而崩溃,请尝试以正确的方式处理此错误,而无需完成过程。必要时添加 try catch,处理异步错误等。

【讨论】:

以上是关于如何防止 Node.js Web 服务器停机的主要内容,如果未能解决你的问题,请参考以下文章

如何防止直接访问 IP Express node.js

如何防止 node.js 中的内存泄漏?

在 Node.js / 服务器端 javascript 中防止 XSS

如何使用Backbone和Node.js / Hapi防止CORB错误?

与Node.js长连接,如何减少内存使用和防止内存泄漏?也与 V8 和 webkit-devtools 相关

Node.js:如何使用 SOAP XML Web 服务