gpt4 book ai didi

node.js - 如何通过 EC2 (linux) 服务器启动来运行 nginx 和 Node.js

转载 作者:太空宇宙 更新时间:2023-11-04 05:11:00 25 4
gpt4 key购买 nike

如何在服务器启动时运行 nginx 和 Node.js?

为了使用 AWS Auto Scaling 启动 Amazon EC2,我必须直接连接到 EC2 以运行 nginx 和 Node.js。

这可以用于自动缩放吗?

<小时/>

在 Amazon EC2 中,我想在 EC2 启动期间通过 Auto Scaling 运行 nginx 和 Node.js。

EC2 使用镜像设置为 Auto Scaling 组。我想要运行由 Auto Scaling 启动的 EC2 Node.js 应用程序和 nginx,以及 EC2 服务器启动。

对于 nginx,我可以使用 chkconfig 运行可执行文件,但 Node.js 应用程序将使用 package.json 中编写的代码作为 pm2 运行。

如何在 EC2 启动时运行 nginx 和 Node.js,并让使用 Auto Scaling 启动的新 EC2 正确响应?

<小时/>

评论回复:

我不想使用“node app.js”命令运行node.js。

我想通过package.json(脚本)运行node.js

例如。

  "start": "NODE_ENV=production PORT=3000 pm2 start server.js -i -1"

我该怎么做?

您的建议是使用 Linux 服务器初始化脚本文件。

但是,我想设置 NODE_ENV、PORT 并使用 pm2 命令。

<小时/>

解决方案

我解决了这个问题。

当Linux启动时,我尝试使用脚本文件自动运行node.js。

我创建了脚本文件并让shell脚本在linux启动后自动运行,但这似乎不是一个好主意。

或者也可以使用pm2启动和ecosystem.config.js来灵活解决问题。

感谢您的回复。

最佳答案

这与自动缩放无关。它通常与自动缩放程序启动 EC2 实例所使用的 EC2 AMI(Amazon 系统镜像)有关,也可能与您在启动实例时传递给实例的“用户元数据”有关。这是影响 EC2 实例在启动时和启动后执行的操作的唯一两件事,直到它开始与外界通信。

因此,您需要做的是创建一个 AMI,并进行设置,以便在从该 AMI 启动 EC2 实例时启动正确的操作。您要做的就是以要使用的 AMI 作为起点,将该 AMI 启动到实例中,进行所需的必要更改和安装,然后保存新的 AMI。然后更改您的自动扩展组以使用该新 AMI 启动新实例。

您也可以在“用户元数据”中发送一个脚本来启动某些东西,但这很少是您想要做的事情。大多数时候,您希望让您的 AMI 做正确的事情。

您也可能正在使用某种启动后配置程序,例如 Chef、Ansible 或 Chef Habitat。如果是的话,那就是你设置所有这些东西的地方。您希望该系统完成您所描述的工作。但如果你这样做,我之前所说的仍然适用。为此,您通常还构建了一个自定义 AMI,其中已内置部分配置系统,以便该系统可以连接到其中并进行配置。这些系统也可以从通用 AMI 开始。这取决于系统。

关于node.js - 如何通过 EC2 (linux) 服务器启动来运行 nginx 和 Node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55332508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com