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

NGINX反向代理Next.js时出现ERR_TOO_MANY_REDIRECTS错误如何解决

问题原因

你当前的配置之所以出现/_next/static路径下资源重定向次数过多的问题,核心有两个诱因:

  1. NGINX的http块没有引入默认的mime.types配置,无法正确识别静态资源的Content-Type,Next.js收到请求后会因为资源类型不匹配触发重定向逻辑
  2. 你在server块定义的X-Forwarded-Proto头没有被location /块继承:location块中重新定义了proxy_set_header规则会覆盖server块的全局配置,导致Next.js拿到的请求协议不对,触发跳转死循环

修复方案

直接替换为如下配置即可:

worker_processes 1;
 
events { worker_connections 1024; }
 
http {
  # 引入资源类型识别配置,必加
  include       /etc/nginx/mime.types;
  default_type  application/octet-stream;

  server {
        listen 80;
        server_name website.dev;

        # 全局代理头配置,location块不重复定义的话会自动继承
        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;
        proxy_redirect off;
        
    # 单独匹配Next.js静态资源路径,同时加缓存规则优化加载速度
    location /_next/static/ {
            proxy_pass http://indiestash:3007;
            expires 1y;
            add_header Cache-Control "public, immutable";
        }

    location / {
            proxy_pass http://indiestash:3007;
        }
    }
}

后续校验步骤

  • 修改配置后执行nginx -s reload重载规则
  • 清理浏览器缓存后再访问测试
  • 确认Next.js的next.config.js中没有配置强制HTTPS跳转的全局重定向规则
  • 确认NGINX容器和Next.js容器在同一Docker网络下,可正常解析indiestash主机名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:45:03