有没有办法在 nginx 上使用 django 上传一个非常大的文件?

Posted

技术标签:

【中文标题】有没有办法在 nginx 上使用 django 上传一个非常大的文件?【英文标题】:Is there any way to upload a very large file use django on nginx? 【发布时间】:2012-07-15 03:52:33 【问题描述】:

我使用 django 运行我的网站和 nginx 作为前端网络服务器,

但是当我将一个非常大的文件上传到我的网站时,

我花了很长时间,

nginx手动上传大文件时出现问题;

nginx 收到我所有的 post 文件后会将文件发送到 django;

所以这将花费我更多的时间;

我想找一些其他的网络服务器来代替 nginx;

希望您的建议?

【问题讨论】:

上传大文件需要很长时间。它就是这样。习惯就好。 如果我能忍受,我不会发布这个请求。^_^... @timger:不同的网络服务器不会使文件上传更快。 【参考方案1】:

你的问题不是在 nginx 中,而是在 nginx 设置中。

如果你想用 django 处理文件 - 你应该改变一些参数

Timeout when uploading a large file?

否则 nginx 可能会自己处理文件

http://www.grid.net.ru/nginx/upload.en.html

【讨论】:

【参考方案2】:

Nginx 可能是最好的 http 服务器了,没必要换。我会建议你通过 ftp 或 nfs 共享上传非常大的文件。

【讨论】:

我想建立一个网站共享文件使用像亚马逊s3这样的http,所以我需要一个可以处理上传大文件的网络服务器 @timger Nginx 可以很好地处理大文件。你的问题是 django【参考方案3】:

如果您不想将文件传递给您的 django 应用程序,那么您应该使用: fastcgi_pass_request_body off;

您可能还想使用上传模块:http://www.grid.net.ru/nginx/upload.en.html

【讨论】:

【参考方案4】:

看看http://www.tornadoweb.org/的龙卷风你可以在django旁边使用它并处理文件上传。

在我的项目中,我成功地将 django 与 tornado 一起使用,它可以处理 API 调用和长 ajax 请求。

【讨论】:

以上是关于有没有办法在 nginx 上使用 django 上传一个非常大的文件?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在 ubuntu 上同时使用 Pytion3、django2.0.2 和 MySql?

在 EC2 上使用 nginx 设置 django

如何使用 Nginx 和 GUnicorn 在单个服务器上部署多个 Django 应用程序?

有没有办法加快 django 中的身份验证功能?

详细拆分如何在ubuntu 上使用 nginx + uwsgi socket方式部署 Django 项目

在centos上使用nginx+uwsgi部署django项目