【发布时间】: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