node.js - 我应该使用 Node express 进行生产吗?

标签 node.js windows express server

<分区>

我想知道在生产服务器上使用 node express 是否安全?

只是为了在服务器上的cmd窗口(在windows 2012 server中)运行node server.js

如果没有,有哪些可用的替代方案?

谢谢。

最佳答案

这实际上取决于您所说的“安全”是什么意思。

如果是安全性或稳定性,最终要由应用程序作者来确保其安全性和稳定性。

但是,如果您指的是服务器上运行的进程的稳定性,您有几个选择。

PM2是一个很棒的 Node.js 进程管理器。您只需告诉 PM2 运行您的代码,它就会运行并执行。您可以流式传输日志、停止、启动、重新启动,所有这些都可以很好地插入 PM2 网络界面(如果您有很多 Node.js 应用程序正在运行,那就太好了!)。我已经个人使用 PM2 大约 6 个月了,我没有遇到任何问题。它还会在应用崩溃时重新启动您的应用,并使您能够在系统重新启动时自动启动应用。

如果您的虚拟主机支持 Docker (基本上,任何不是共享主机的东西),你可以将你的应用程序放在一个容器中并像那样运行它。 Docker 是一个完全不同的球类游戏,但它确实允许您真正轻松地运行您的应用程序而不必担心安全性,因为它(理论上)都在它自己的容器中。

注意:仅限 Linux

使用初始化脚本运行它。您可以将您的应用程序作为系统服务运行,就像 Ghost做。这允许它在系统从重新启动恢复时运行它们,分配一个特定的用户来运行它(如果使用正确,对安全有好处)。我并没有真正使用 init 脚本,主要原因之一是它更复杂。当您运行大量小规模微服务时,实际上没有必要使用初始化脚本。但是,如果您想走那条路,有一个很好的概述 here .

这些不是唯一的解决方案,但它们是我最了解的。我很想看看其他人使用什么!

总而言之,我建议使用 PM2 启动并运行您的应用程序,并且仅在您认为确实有必要时才扩展到初始化脚本。

部署愉快!

关于node.js - 我应该使用 Node express 进行生产吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41086143/

相关文章:

node.js - 如何使用 multer 在 nodejs 中设置不同的目的地?

javascript - 在 JS 中有依赖关系的可遍历树可以使用什么方法?

windows - 如何让 Windows 7 上的 Web 浏览器考虑 etc/hosts 文件

c# - 我可以使用什么作为 C++ 中 Environment.SpecialFolder.CommonApplicationData 的等效项?

node.js - 使用 Express 将多个数据库查询结果发送到单个 View

javascript - 格式化从 PostgreSql 数据库检索的 JSON 数据

javascript - 如何使用变量作为 i18next 的键?

windows - 搁置线程是最优的吗?

node.js - 如何在 express-validator 中设置小数的最小值

node.js - 特定端点上的 Socket.io