我正在使用以下命令在本地计算机上运行 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 应用程序使用合适的部署方案。有几个,您最喜欢的搜索引擎会为您找到它们。
这种部署应用程序的方式是否会带来任何安全问题?
它肯定存在您的 app.js 已经包含的任何安全问题。
您可能正在使用自己的用户名和开发权限(例如访问 git)运行 shell。在公共(public)网络上部署的应用程序应该从仅包含使其工作所需的目录结构运行,并由专用于该目的的用户和组运行。在 Linux 服务器上,您想要的用户通常是
www-data
。
关于node.js - 是否可以使用 `node app.js` 在 AWS 实例上运行 Node 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53360102/