【问题标题】:Is it okay to run node apps on AWS instance using `node app.js` [closed]是否可以使用`node app.js`在AWS实例上运行节点应用程序[关闭]
【发布时间】:2019-04-20 22:55:28
【问题描述】:

我正在使用命令在我的本地机器上运行节点应用程序 node app.js 来自应用程序的目录。

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

它有什么安全问题吗?

【问题讨论】:

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


    【解决方案1】:

    你问是否可以部署节点应用程序(在 AWS 实例上),我猜是,

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

    是的,没关系。但这不是最佳实践。会出什么问题?

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

    如果你要投入生产,你最好:

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

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

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

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

    【讨论】:

    • 谢谢!.. 非常感谢。
    猜你喜欢
    • 2020-11-18
    • 1970-01-01
    • 1970-01-01
    • 2019-09-19
    • 1970-01-01
    • 2016-12-03
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多