可以使用node app.js在AWS实例上运行节点应用程序吗

时间:2018-11-18 10:59:53

标签: node.js amazon-web-services meteor amazon-ec2

我正在使用以下命令在本地计算机上运行节点应用程序 node app.js从应用程序的目录中。

也可以在不打包应用程序的情况下在AWS实例上执行相同的操作吗?就像在本地计算机上一样运行它,然后向公众开放端口。

有任何安全问题吗?

1 个答案:

答案 0 :(得分:3)

您问是否可以通过

部署节点应用程序(在AWS实例上)是否可以
  • 将源代码克隆和/或拉到目录中,
  • 运行npm install
  • 运行node app.js

是的,可以。但这不是最佳实践。怎么可能出问题了?

  • 如果您在外壳中执行此操作,然后关闭外壳,则节点应用程序将停止。
  • 为了确保公共网络的安全,您希望使用https服务您的应用程序。您可以使用https服务器构建节点应用程序并运行它。但是然后您要让节点执行加密工作。
  • 如果您的AWS实例重启(有时会发生这种情况),则您的节点应用程序此后将不会运行。

如果您要投入生产,那么您的状况会更好:

  • 在您的设备上安装nginx反向代理以处理https并将请求转发到节点。
  • 为您的节点应用程序使用体面的部署方案。有几种,您最喜欢的搜索引擎会为您找到它们。

这种部署应用程序的方式是否存在任何安全问题?

  1. 它肯定有您的app.js已经包含的任何安全问题。

  2. 您可能正在使用自己的用户名和开发特权(例如,访问git)运行Shell。在公共Web上部署的应用程序应从仅包含使其工作所需的目录结构以及专用于此目的的用户和组一起运行。在Linux服务器上,您想要的用户通常是www-data