【发布时间】:2019-08-15 09:09:59
【问题描述】:
如何在服务器启动时运行 nginx 和 Node.js?
为了使用 AWS Auto Scaling 启动 Amazon EC2,我必须直接连接到 EC2 以运行 nginx 和 Node.js。
Auto Scaling 可以这样做吗?
在 Amazon EC2 中,我想通过 Auto Scaling 在 EC2 启动期间使用 Node.js 运行 nginx。
EC2 设置为使用图像的 Auto Scaling 组。我想运行由 Auto Scaling 启动的 EC2 Node.js 应用程序和 nginx,以及 EC2 服务器启动。
对于 nginx,我可以使用 chkconfig 运行可执行文件,但 Node.js 应用程序将使用 package.json 中编写的代码作为 pm2 运行。
如何在 EC2 启动时运行 nginx 和 Node.js 并让新的 EC2(以 Auto Scaling 启动)正确响应?
评论回复:
我不想使用“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启动和生态系统.config.js来灵活解决问题。
感谢您的回复。
【问题讨论】:
-
谢谢!但是有什么方法可以在不在服务器上编写脚本文件的情况下运行它?如果您使用乘客,您知道可以从 nginx 服务器块运行节点。这不可能吗?
标签: node.js linux nginx amazon-ec2 server