我应该使用Node express进行制作吗?

时间:2016-12-11 12:26:49

标签: node.js windows express server

我想知道将node express用于生产服务器是否安全?

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

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

感谢。

2 个答案:

答案 0 :(得分:3)

这实际上取决于你所说的“安全”。

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

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

PM2是一个出色的Node.js流程管理器。你只需告诉PM2运行你的代码就可以了。您可以流式传输日志,停止,启动,重新启动,并且所有这些都可以很好地插入到PM2 Web界面中(如果您运行了很多Node.js应用,那真的很棒!)。我亲自使用PM2大约6个月了,我没有一个问题。如果应用程序崩溃,它也会重新启动您的应用程序,并允许您在系统重新启动时自动启动应用程序。

如果您的网络托管服务商支持Docker(基本上,任何非共享托管服务),您可以将您的应用程序放在容器中并像这样运行它。 Docker是一个完全不同的球类游戏,但它确实允许你非常轻松地运行你的应用程序而不用担心安全性,因为它(理论上)都在它自己的容器内。

注意:仅限Linux

使用init脚本运行它。您可以将应用程序作为系统服务运行,就像Ghost一样。这允许它在系统从重新启动时返回时运行它们,指定特定用户运行它(如果使用正确,则有利于安全性)。我没有真正使用init脚本的一个主要原因 - 它更复杂。当你运行大量的小型微服务时,真的没有必要全面使用init脚本。但是,如果你想沿着那条路走下去,那就有一个很好的概述here

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

总而言之,我建议使用PM2启动并运行您的应用程序,如果您认为有必要,只能扩展到init脚本。

快乐部署!

答案 1 :(得分:1)

我使用process manager PM2在生产中运行一些节点应用。如果它因任何原因停止,它会重新启动应用程序,并且可以让您的应用程序作为服务运行(因此应用程序将在服务器启动时启动)。它很棒,像魅力一样,有一些很好的功能,如监控模式(所以你可以实时看到你的应用程序控制台登录),并且可以直接使用。看看吧。

我希望在参与Node之前我知道的一件事是,没有多少共享托管服务提供商支持它。这意味着您需要实施解决方案,改为使用VPS,或者使用A2托管,这是我发现支持Node的唯一共享托管计划。

如果我在开始之前就已经知道这一点,我可能仍然会在我的所有项目中使用Node,因为我喜欢它,但是知道我进入的是什么而不是得到一个令人讨厌的冲击会很好当我开始部署我的第一个项目时。