将nodejs应用程序部署到EC2并更新方法

时间:2017-11-30 05:23:02

标签: node.js git amazon-web-services nginx amazon-ec2

所以我有一个节点js app我想部署到EC2。

我打算创建它的多个实例,并将它放在Nginx之外,以实现负载平衡。

我知道我可以使用AWS Beanstalk,但我认为这超出了我不需要的配置。

我的问题是关于应用更新流程。我想到了两个选择。

第一个是在EC2上创建一个裸git存储库,每次推送一些更改时,它都会挂钩到after after事件,创建应用程序的新实例并更新Nginx以切换到新实例。 / p>

另一种选择是使用Amazon ECR和容器。每当我在ECR上更新我的应用程序图像时,它都会向EC2机器发送一个事件(我不确定它是否可行)来创建应用程序的新实例并再次告诉Nginx切换。

您认为哪一个更受欢迎?

1 个答案:

答案 0 :(得分:0)

以下是我们使用的部署方法

1)在ec2服务器中创建git bare repo,并使用生产分支进行跟踪。

2)在post-receive钩子

#!/bin/sh
git --work-tree=/var/www/domain.com --git-dir=/var/repo/site.git checkout -f
cd /var/www/domain.com && npm install && forever restart app.js

3)在nginx配置中

 {
     proxy_pass:https://localhost:3000
  }

注意:  您可以自定义post hook以检查其第一次部署是否运行npm install,否则运行npm update

我希望这有助于解决您的问题