反应:AWS Elastic Beanstalk 上的 502 错误网关

Posted

技术标签:

【中文标题】反应:AWS Elastic Beanstalk 上的 502 错误网关【英文标题】:React: 502 Bad Gateway on AWS Elastic Beanstalk 【发布时间】:2021-09-16 14:24:41 【问题描述】:

我正在尝试使用 AWS Elastic Beanstalk 部署 webapp 前端。由于 NodeJS 使用 3000,我将 beanstalk env 的 PORT 环境变量更改为 3000。

问题: 部署在 AWS 控制台中显示成功,但是当我尝试访问该网页时,我得到 502 bad gateway。我筛选了日志,似乎节点在Starting the development server... 阶段卡住/循环。

web.stdout.log 文件反复打印以下内容:

Jul  5 20:34:41 ip- web: > webapp@0.1.0 start /var/app/current
Jul  5 20:34:41 ip- web: > react-scripts start
Jul  5 20:34:45 ip- web: #033[34mℹ#033[39m #033[90m「wds」#033[39m: Project is running at http://xx.xx.xx/
Jul  5 20:34:45 ip- web: #033[34mℹ#033[39m #033[90m「wds」#033[39m: webpack output is served from
Jul  5 20:34:45 ip- web: #033[34mℹ#033[39m #033[90m「wds」#033[39m: Content not from webpack is served from /var/app/current/public
Jul  5 20:34:45 ip- web: #033[34mℹ#033[39m #033[90m「wds」#033[39m: 404s will fallback to /
Jul  5 20:34:45 ip- web: Starting the development server...

到目前为止我已经尝试过:

    我看到实例可能内存不足的建议,因此我将实例切换到 t3.small,但它不起作用。还是卡住了

    我没有更改 PORT 环境变量,而是在 package.json 中将 Node 的默认端口更改为 8080(beantalk 中的 nginx 默认端口)。它仍然卡住了。 我的猜测是负载均衡器需要配置为侦听端口 3000。但我不知道如何正确地做到这一点。

有人可以帮我解决这个问题吗?如果需要任何额外信息,我会提供。

【问题讨论】:

您有启动开发服务器的特定需求吗?我认为您可以在没有开发服务器的情况下在 EB 上提供静态内容 在 AWS 控制台中,进入 EC2,在左侧,找到负载均衡 > 负载均衡器。是否有侦听器 ID HTTP : 80? 是的。它在那里。 【参考方案1】:

使用npm run build 提供静态内容解决了我的问题。

我认为不可能在 EB 上运行开发服务器。

【讨论】:

以上是关于反应:AWS Elastic Beanstalk 上的 502 错误网关的主要内容,如果未能解决你的问题,请参考以下文章

如何将 express react 应用程序部署到 aws elastic beanstalk?

Amazon Elastic BeanStalk 错误:无法创建 AWS Elastic Beanstalk 应用程序版本

[AWS] Elastic Beanstalk

AWS Elastic Beanstalk CLI 安装错误

text AWS Elastic Beanstalk

HTTPS Elastic Beanstalk (AWS) 到 Android