如何防止 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 服务器停机的主要内容,如果未能解决你的问题,请参考以下文章
在 Node.js / 服务器端 javascript 中防止 XSS
如何使用Backbone和Node.js / Hapi防止CORB错误?