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

AWS Network Load Balancer前置Nginx出现Too many redirects问题求助

故障原因与解决方案

核心故障原因

你遇到的重定向循环与请求转发异常本质是四层负载均衡(AWS NLB)的特性和配置不匹配导致:

  • AWS NLB工作在OSI四层,本身不会处理HTTP协议头,默认无法将原始请求的HTTPS协议信息传递给后端Nginx
  • 你当前配置中Nginx的$scheme变量读取的是NLB转发到80端口的HTTP协议,传给后端unicorn的X-Forwarded-Proto永远是http,如果unicorn配置了强制HTTPS跳转,就会触发请求循环
  • 80和443流量都转发到后端80端口的配置,也会导致后端服务无法正确识别原始请求协议

修复步骤

第一步:调整NLB监听器配置

将NLB的80端口监听器规则修改为直接重定向到443端口,不再转发到后端目标组,公网所有HTTP请求会在NLB层直接跳转HTTPS,后端Nginx只会收到来自NLB 443监听器的请求,避免HTTP流量进入后端带来的逻辑混乱。

第二步:修改Nginx配置

调整@app块的请求头配置,强制指定X-Forwarded-Proto为https,确保后端unicorn可以正确识别原始请求为HTTPS协议,不会触发跳转。测试阶段建议临时注释HSTS头,避免浏览器缓存配置影响测试结果:

server {
    listen 80;
    server_name  test.server.com;
    client_max_body_size 4M;
    keepalive_timeout 5;
    root /etc/project/public;
    try_files $uri/index.html $uri.html $uri @app;

    # 测试阶段先注释HSTS,确认无问题后再恢复
    # add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
    add_header Referrer-Policy "strict-origin-when-cross-origin";
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";
    add_header X-XSS-Protection  "1; mode=block";

    location @app {
      add_header X-Frame-Options "";
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      # 强制指定原始请求协议为HTTPS
      proxy_set_header X-Forwarded-Proto https;
      proxy_set_header Host $http_host;
      proxy_redirect off;
      proxy_pass http://app_server;
    }
}

修改配置后执行nginx -t验证配置合法性,再执行nginx -s reload重载配置生效。

第三步:排查多余SSL配置问题

你提到的Nginx SSL始终启用的问题,是因为残留了旧的443端口监听配置,执行nginx -T可以打印所有加载的Nginx配置文件,全局搜索listen 443相关的server块,删除多余配置后重载即可。

第四步:验证后端unicorn配置

确认unicorn加载的中间件(如Rack::SSL等)是通过X-Forwarded-Proto头判断请求协议,而不是直接读取当前请求的scheme,避免后端仍强制跳转HTTP协议。


验证方法

  1. 执行curl -v http://test.server.com确认返回301跳转到HTTPS地址
  2. 执行curl -v https://test.server.com/动态接口路径确认返回200状态码,无循环跳转

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:36:03