首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在EC2 (linux)服务器启动时运行nginx和Node.js

如何在EC2 (linux)服务器启动时运行nginx和Node.js
EN

Stack Overflow用户
提问于 2019-03-25 14:49:11
回答 1查看 456关注 0票数 -1

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

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

Auto Scaling可以做到这一点吗?

在亚马逊EC2中,我想通过Auto Scaling在EC2启动时使用Node.js运行nginx。

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

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

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

评论回复:

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

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

例如。

代码语言:javascript
复制
  "start": "NODE_ENV=production PORT=3000 pm2 start server.js -i -1"

我该怎么做呢?

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

但是,我想设置NODE_ENV和端口,并使用pm2命令。

解决方案

我解决了这个问题。

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

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

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

感谢您的回复。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-25 15:02:19

这与自动缩放无关。它通常与自动缩放器启动EC2实例时使用的EC2 AMI (Amazon Machine Image)有关,也可能与您在启动时传递给实例的“用户元数据”有关。只有这两件事会影响EC2实例在启动时和之后执行的操作,直到它开始与外部世界通信为止。

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

你也可以在你的“用户元数据”中发送一个脚本来启动一些东西,但这很少是你想要做的。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55332508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档