将Webpack构建部署到Elastic Beanstalk时,可以避免502错误吗?

时间:2017-03-23 12:43:43

标签: node.js amazon-web-services nginx npm elastic-beanstalk

在将我的服务器端呈现的React应用程序部署到Node Elastic Beanstalk环境时,该站点显示502错误,其中Nginx在运行webpack构建的过程中无法建立连接。

在package.json中,我运行以下命令来进行构建,这在部署期间由Elastic Beanstalk触发:

"prestart": "node node_modules/webpack/bin/webpack.js --progress --colors --bail"

并在构建完成后运行以下命令启动服务器:

"start": "node dist/server.js"

在这两者之间,该网站显示502错误。我有一些潜在的选择,但我很想知道是否有人以不同/更简单的方式解决了这个问题。

  1. 使用AWS CodeBuild而非NPM脚本构建网站
  2. 运行多个实例并执行部署
  3. 运行多个环境并交换网址。

1 个答案:

答案 0 :(得分:1)

您列出的第二个选项可能是最简单的。如果将EB配置从“单实例”更改为“负载平衡,自动扩展”并将自动扩展规则设置为至少具有两个服务器,那么您将免费获得所需的部署行为。 EB会在部署到实例之前将实例从负载均衡器中取出,从而确保您的站点永远不可用。

第三个选项,也称为蓝色/绿色部署,功能更强大(因为它保留了先前版本的完整性以便于回滚),但对于您的情况可能过度。