net::ERR_INCOMPLETE_CHUNKED_ENCODING解决

1、报错含义

ERR_INCOMPLETE_CHUNKED_ENCODING:分块传输编码不完整 服务端用 Transfer-Encoding: chunked 流式返回数据,但连接中途被强制断开,浏览器没收到完整数据块,接口直接失败。

2、常见根因(按排查优先级排序)

1. 后端服务异常(最高概率)

  1. 接口代码抛异常崩溃 findEnum/ loginMenu 内部逻辑报错(空指针、SQL 超时、循环死锁、OOM 内存溢出),服务进程 / 线程直接中断 TCP 连接,没输出结束 chunk 标识。
  2. 接口执行超时
    • 数据库查询慢、大量枚举 / 菜单数据一次性加载耗时过长
    • Nginx、Tomcat、SpringBoot 超时阈值太短(默认 60s/30s),网关主动切断长请求
  3. 服务内存 / CPU 打满 JVM 堆溢出、服务器 CPU100%,无法完成数据输出,强制断连。

2. 反向代理 / Nginx 配置问题

  1. Nginx proxy_buffer 缓冲区过小,大报文溢出直接断流;
  2. proxy_read_timeout、proxy_send_timeout 超时时间太短;
  3. 开启 gzip+chunked 冲突、代理转发时未完整透传流数据。

3. 前端请求层面

  1. 前端主动取消请求:页面切换、路由跳转、组件销毁时 axios.cancelToken 中断请求;
  2. 并发请求过多,浏览器 / 服务端限流丢弃连接;
  3. 本地网络波动、VPN / 代理软件中断 TCP 链路。

4. 服务器 / 网络层

防火墙、安全组、WAF 拦截长连接,认为流量异常主动断开; 容器(Docker/K8s)资源限制,OOM kill 掉服务进程。

3、快速临时验证手段

  • Postman 直接调用接口 :绕过前端,单独请求 报错接口
    • 如果 Postman 也报错 → 后端 / 网关问题;
    • 如果 Postman 正常、仅浏览器报错 → 前端主动取消或浏览器网络限制。
  • 简化接口返回:临时让接口只返回少量测试数据,若不再报错,证明是数据量大 / 执行慢导致。

4、NGINX解决方案

修改点

报错本质:chunked 流式响应被中途切断,分两类配置要改:

  1. 超时时间(读取后端数据、转发超时拉长)
  2. 代理缓冲区(大 json / 菜单枚举数据缓冲不足)

修改配置

业务反向代理一般写在 conf.d/你的项目.conf 里。找到类似下面的 location 代理后端服务的代码块,所有修改写在 location / { ... } 内部。

复制代码
location / {
    proxy_pass http://127.0.0.1:8080; # 你的后端地址不要改
    
    # ========== 新增/修改以下所有配置 ==========
    # 连接后端超时
    proxy_connect_timeout 300s;
    # 从后端读取响应超时(关键!菜单/枚举加载慢就调大)
    proxy_read_timeout 300s;
    # 向后端发送请求超时
    proxy_send_timeout 300s;

    # 调大缓冲区,解决大json chunk截断
    proxy_buffer_size 256k;
    proxy_buffers 8 128k;
    proxy_busy_buffers_size 256k;

    # 关闭缓冲,强制流式完整输出(chunked专用)
    proxy_cache off;
    proxy_buffering off;

    # 透传真实请求头(保留原有)
    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_read_timeout 300s;
proxy_buffer_size 256k;
proxy_buffers 8 128k;
proxy_buffering off;
相关推荐
李迟20 小时前
Nginx容器绑定81端口报拒绝访问错误的解决
运维·nginx
杨云龙UP20 小时前
生产实战:Keepalived + Nginx + MySQL 双向复制高可用架构部署与原理详解
运维·数据库·mysql·nginx·架构·keepalived·高可用架构
国际云,接待1 天前
云服务器 WebSocket 空闲后频繁断开:查 Nginx 超时、心跳与负载均衡,再评估扩容
服务器·websocket·nginx
庵中十三居士2 天前
用nginx代理DeepSeekHarness挂在域名下特定路径提供访问
运维·nginx·deepseek·harness
fb_123452 天前
K8s 网络通关手册:Ingress-Nginx 生产级路由 + Calico 三种隧道模式 + NetworkPolicy 白名单实战
网络·nginx·kubernetes
承渊政道2 天前
新增一台服务器时还要重新装Nginx?Ansible只改hosts目标列表,同一份Playbook继续执行
运维·nginx·ansible·内网穿透·cpolar
KIDULT°2 天前
K8s 网络进阶实战:Ingress-Nginx、Calico 与 NetworkPolicy 实验 + 排坑记录
网络·nginx·云原生·kubernetes
姜鱼问生3 天前
网页一片白?Docker 跑 Nginx 读不到文件,403 Forbidden 排查实录
nginx·docker·容器
我不会起名字3225 天前
网关超时比服务短:一次 499 的完整归因
网关·nginx·排查·499
味悲5 天前
Nginx笔记
linux·运维·笔记·nginx