微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

运行nginx的django服务器上的大型媒体文件出现403错误

我正在使用Nginx和Gunicorn运行在DigitalOcean上托管的Django服务器.当我遇到403错误时,我尝试通过管理界面添加2MB图片.查看error.log表示权限被拒绝,如下所示:

2017/06/27 01:03:29 [error] 1643#1643: *30 open() "/home/brian/nydkc11/nydkc11/nydkcd11/media/image_main/dtc1.jpg" Failed (13: Permission denied), client: 108.29.217.25, server: nydkc11.org, request: "GET /media/image_main/dtc1.jpg HTTP/1.1", host: "nydkc11.org", referrer: "http://nydkc11.org/admin/blog/image/7/change/"

然而,最奇怪的是,较小的图像文件工作得很好(大约18 kb左右).任何人都知道为什么较大的媒体文件可能会触发问题,以及我应该如何解决它?

我必须在我的Nginx.conf中将client_max_body_size设置为100M,如果这是一个有用的东西要知道.

解决方法:

我刚刚遇到了同样的问题.谢谢你的SO线程,否则我仍然会在错误的地方搜索.

解决此问题,您实际上不需要设置DATA_UPLOAD_MAX_MEMORY_SIZE,只要您在上传文件时遇到此错误即可. Django documentation链接到另一个值FILE_UPLOAD_MAX_MEMORY_SIZE,here.

在我的settings.py中将FILE_UPLOAD_MAX_MEMORY_SIZE设置为更高的限制解决了问题,以及Nginx.conf中的上述client_max_body_size.

这会将上载最大值设置为大约200 MB:

FILE_UPLOAD_MAX_MEMORY_SIZE = 200000000

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐