【问题标题】:Nginx - Django - Gunicorn: Large file uploads stalled after 30 secondsNginx - Django - Gunicorn:大文件上传在 30 秒后停止
【发布时间】:2019-01-11 15:12:26
【问题描述】:

我正在尝试将一个大文件(50mb 到多个 GB)上传到我的 django 网站。我使用django docs 中描述的常规文件上传方法。它适用于较小的文件。 我正在使用 Nginx -> Gunicorn -> Django 为网站提供服务。

当文件较大且文件上传需要超过 30 秒时,上传请求将得到“stalled”,就像 chrome 调用的那样,然后冻结。

我原本以为这是nginx的限制,因为error.log说:

2018/08/03 01:13:09 [错误] 1065#1065: *3 客户端打算发送太大的正文:30681744 字节,(...)

所以我调整了以下设置:

nginx.conf:(在http块中)

client_max_body_size 100m;
client_body_buffer_size 100m;
client_body_timeout 120;

站点可用/主机:(在服务器块中)

send_timeout 120;
client_max_body_size 100m;
client_body_buffer_size 100m;
client_body_timeout 120;

调整这些后,错误消息消失了。

gunicorn 日志没有提供更多信息。但是,文档告诉我使用 --timeout 300 标志启动 gunicorn,所以我这样做了。

但是文件仍然没有上传并在 30 秒后“停止”。

这是一个浏览器问题吗?我记得用 apache 和 PHP 上传大文件没有问题。我是否缺少 django 配置?

感谢您的宝贵时间。

【问题讨论】:

    标签: django file nginx upload gunicorn


    【解决方案1】:

    我解决了这个问题。我完全忽略了 dropzone.js 的问题。 见Large file upload - Request gets cancelled

    【讨论】:

      猜你喜欢
      • 2021-04-08
      • 2013-03-13
      • 2021-12-11
      • 2018-06-15
      • 1970-01-01
      • 2014-10-20
      • 2014-09-26
      • 2021-05-23
      • 2016-04-24
      相关资源
      最近更新 更多