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

Nginx+Docker+Gunicorn环境下如何禁用上游缓冲解决大文件上传进度条异常

问题根因

你当前配置的proxy_request_buffering off未生效的核心原因是:Nginx默认向上游服务转发请求时使用HTTP/1.0协议,该版本不支持chunked编码的流式请求体传输,所以Nginx仍会先完整接收客户端上传的全部文件,再转发给Gunicorn,就会出现XHR上传进度提前到100%、后续等待后端处理的问题。

修复方案

修改Nginx的default.conf配置中/api/的location块,新增2行配置指定使用HTTP/1.1协议转发请求:

location /api/ {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Host $http_host;
    # 新增以下2行
    proxy_http_version 1.1;
    proxy_set_header Connection "";
    # 原有配置保留
    proxy_buffering off;
    proxy_request_buffering off;
    proxy_redirect off;
    proxy_pass http://hello_django;
}

额外校验项

  • 你使用的Nginx 1.20.0版本原生支持proxy_request_buffering指令,无需升级版本
  • 如果上传的文件超过1G,可适当调高Gunicorn启动命令中的--timeout参数,避免后端处理超时断开连接

验证方法

修改配置后重启Nginx容器,重新上传大文件即可看到XHR进度条与实际上传速度匹配,不会出现提前跳满的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:45:05