You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Elastic Beanstalk负载均衡器502错误及健康检查失败求助

问题排查方案与日志获取方法

一、日志获取方法

针对负载均衡架构的Elastic Beanstalk(EB)环境,可通过以下方式获取完整日志:

  • CloudWatch日志集成:进入EB控制台对应环境,依次点击「配置」→「软件」→「日志选项」,开启CloudWatch日志推送。若开启时报错,检查EB服务角色是否具备logs:CreateLogGroup、logs:CreateLogStream、logs:PutLogEvents权限,手动添加对应权限即可。
  • EB CLI拉取日志:安装EB CLI后,在本地项目目录执行命令eb logs --all,可一次性拉取负载均衡、实例、环境的全量日志,包括ELB访问日志(需提前开启)。
  • ELB访问日志:在EC2控制台找到对应负载均衡,进入「属性」→「访问日志」开启日志存储,日志会自动保存到指定S3桶,可从中查看502错误的具体请求细节(如目标组返回状态、实例健康状态)。

二、健康检查修复方案

当前配置存在健康检查与Nginx重定向的冲突问题,可按以下步骤修复:

  1. 修正Nginx重定向配置
    你新增的独立server块会与EB默认Nginx配置冲突,导致健康检查请求无法正确转发到应用接口。修改ebextensions配置,改为在默认server中添加规则:

    files:
      "/etc/nginx/conf.d/https_redirect.conf":
        mode: "000644"
        owner: root
        group: root
        content: |
          # 仅对非健康检查路径做HTTPS重定向
          location / {
              if ($http_x_forwarded_proto != 'https') {
                  return 301 https://$host$request_uri;
              }
          }
          # 直接转发健康检查请求到应用端口(替换为你的前端实际端口)
          location /health {
              proxy_pass http://localhost:3000;
              proxy_set_header Host $host;
              proxy_set_header X-Real-IP $remote_addr;
          }
    

    若使用Amazon Linux 2的EB环境,推荐将配置文件放在.platform/nginx/conf.d/目录下,避免与默认配置冲突。

  2. 调整目标组健康检查规则

    • 确认目标组健康检查的协议与端口:若目标组用HTTP协议,端口选实例的应用端口(如3000)而非80,路径保持/health,绕开Nginx直接检查应用状态;
    • 设置健康检查响应码:在目标组配置中,将可接受的响应码范围设为200-399,兼容重定向返回的301状态;
    • 检查安全组:确保ELB的安全组有权限访问实例的健康检查端口,实例安全组开放对应端口。

三、核心配置错误排查

  • Route 53别名指向:确认自定义域名的别名记录指向的是ELB的DNS名称,而非EB环境的CNAME(负载均衡架构下ELB是入口);
  • SSL证书关联:ELB的443监听器需关联与自定义域名匹配的ACM证书,且证书需部署在ELB所在区域;
  • 后端SSL兼容性:前端应用调用后端时需使用HTTPS,若后端使用自签名证书,需在前端配置中关闭证书验证,或替换为ACM签发的可信证书。

内容的提问来源于stack exchange,提问作者user23927918

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 16:57:32