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

K8s中Ingress Nginx下Express批量拉取图片报ERR_HTTP2_SERVER_REFUSED_STREAM

问题1:该问题是否是ingress-nginx控制器导致的?

是,你遇到的net::ERR_HTTP2_SERVER_REFUSED_STREAM报错,本质是HTTP/2协议下服务端主动拒绝了超出并发限制的请求流。由于你排查NodeJS侧无任何报错,说明请求在到达Express服务前就被ingress-nginx拦截拒绝,根因是ingress-nginx的默认HTTP/2并发配置无法支撑你同时加载上百张图片的请求量。

问题2:这个问题能否被解决?

完全可以,通过调整ingress-nginx的相关配置即可解决:

  1. 调整HTTP/2并发流限制:ingress-nginx默认的http2_max_concurrent_streams参数值为128,你可以在对应Ingress资源上添加注解调高该值:
nginx.ingress.kubernetes.io/http2-max-concurrent-streams: "1024"
  1. 调整长连接请求数限制:默认keepalive_requests参数值为100,单长连接内超过该数值的请求会被强制断开,同步调高该参数:
nginx.ingress.kubernetes.io/keepalive-requests: "1000"
  1. (可选优化)添加静态资源缓存规则,让ingress-nginx直接缓存public目录下的图片资源,无需每次透传到Express服务,进一步降低请求开销:
nginx.ingress.kubernetes.io/configuration-snippet: |
  location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    expires 30d;
    add_header Cache-Control "public, no-transform";
  }

问题3:我是否需要调整现有方案,将文件存放到其他位置?

短期内不需要,完成上述配置调整后即可满足当前场景需求。如果后续静态资源访问量持续增长,可以考虑将静态资源迁移到对象存储服务,进一步降低后端服务压力、提升访问加载速度。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:18:02