node.js - 是否可以使用 `node app.js` 在 AWS 实例上运行 Node 应用程序

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

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

是否可以在 AWS 实例上执行相同的操作而不打包应用程序?只需像我在本地计算机上一样运行它,然后向公众开放端口即可。

有任何安全问题吗?

最佳答案

您询问是否可以部署 Node 应用程序(在 AWS 实例上),我猜,

  • 克隆和/或将源代码提取到目录,
  • 运行npm install
  • 运行node app.js

是的,没问题。但这不是最佳实践。可能会出现什么问题?

  • 如果您在 shell 中执行此操作,然后关闭 shell,您的 Node 应用程序将停止。
  • 为了确保公共(public)网络的安全,您希望使用 https 来为您的应用程序提供服务。您可以使用 https 服务器构建 Node 应用程序并运行它。但接下来你要让 Node 来做加密工作。
  • 如果您的 AWS 实例重新启动(有时会发生),您的 Node 应用程序随后将无法运行。

如果您要投入生产,您的情况会更好:

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

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

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

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

关于node.js - 是否可以使用 `node app.js` 在 AWS 实例上运行 Node 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53360102/

相关文章:

node.js - 将 AWS EB 平台版本从 2.0.1 升级到 3.1.0

amazon-web-services - 自定义授权者 + 阶段配置值

meteor - meteor 中多个 View 的最佳实践方法?

javascript - 在 Node js 后端使用 FormData 和 XmlHttpRequest 上传文件并使用 Formidable 显示空文件、字段

javascript - 如何正确构建nodejs代码

amazon-web-services - 仅在AWS EC2实例上运行Kubernetes

ios - Swift 4 - 尝试在 AVPlayerViewController 中从后端显示 AWS 视频 url 不起作用,出现奇怪的错误

node.js - 如果一切都是客户端,如何通过 OAuth 安全地验证 React 客户端?

meteor - Meteor React.js 教程第 2 部分中的应用程序崩溃

javascript - 将变量从 Jquery 传递到 Node 以运行 git 命令