反应: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 应用程序版本