运行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

上一篇:django项目的最低服务器要求[已关闭]


下一篇:Gunicorn和Django错误许可否认了袜子