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

HTTP API Gateway出现too much redirect错误及ALB健康检查状态异常问题

解决Elastic Beanstalk + API Gateway循环重定向&ALB健康检查失败问题

看起来你被这个循环重定向和健康检查的问题折腾两周了,太闹心了!咱们先从你提供的curl localhost输出里揪出核心问题:你的后端Nginx正在强制把所有HTTP请求重定向到https://localhost——这就是一切麻烦的根源。

问题拆解

  1. API Gateway的too much redirect错误:API Gateway用HTTP请求你的ALB,ALB把请求转发到后端实例,后端看到请求的Host是localhost(或者ALB的内部域名),就把请求重定向到https://localhost。API Gateway收到重定向后,又去请求这个地址,结果再次被重定向,无限循环就这么来了。
  2. ALB健康检查失败:后端把健康检查的HTTP请求也重定向成302了,所以ALB默认检查200状态码时就会失败;你改成302后实例恢复健康,但这只是临时 workaround,没解决根本问题。

具体解决方案

1. 修正Nginx的重定向规则(最关键)

你的Nginx配置里肯定有一条强制把所有HTTP请求重定向到HTTPS localhost的规则,得把它改成只针对你的外部业务域名做HTTPS重定向,而不是对所有请求(包括ALB的健康检查和API Gateway的请求)都重定向。

比如,修改Elastic Beanstalk的Nginx配置文件(通常是.ebextensions/nginx/conf.d/redirect.conf):

server {
    listen 80;
    server_name _;

    # 给健康检查单独开个绿色通道,直接返回200
    location /health {
        return 200 "Healthy";
        add_header Content-Type text/plain;
    }

    # 只有当请求的Host是你的外部业务域名时,才重定向到HTTPS
    if ($host = your-app-domain.com) {
        return 301 https://$host$request_uri;
    }

    # 其他请求正常转发给你的应用
    location / {
        proxy_pass http://localhost:8080; # 这里改成你应用的端口
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

2. 恢复ALB健康检查的200状态码要求

把ALB健康检查的预期状态码改回200,因为现在咱们已经配置了/health路径直接返回200,健康检查就能正常通过了。

3. 对齐API Gateway和ALB的通信协议

  • 如果你的ALB配置了HTTPS监听(443端口),请确保API Gateway用HTTPS协议访问ALB的端点;
  • 如果暂时不想用HTTPS,直接把后端的HTTPS重定向规则注释掉,先验证API Gateway能正常访问后端,再逐步配置HTTPS。

验证步骤

  1. 部署修改后的Nginx配置到Elastic Beanstalk;
  2. 等待实例更新完成后,用curl测试ALB的HTTP端点:curl http://your-alb-domain.com,如果是外部域名应该重定向到HTTPS,内部请求(比如API Gateway的)则正常返回应用内容;
  3. 检查ALB的健康检查状态,应该回到200且实例健康;
  4. 测试API Gateway的端点,应该不再出现循环重定向错误。

内容的提问来源于stack exchange,提问作者saad jaha kayani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 17:40:19