Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django服务器错误403禁止nginx/1.10.3(ubuntu)_Django_Nginx_Ubuntu Server - Fatal编程技术网

Django服务器错误403禁止nginx/1.10.3(ubuntu)

Django服务器错误403禁止nginx/1.10.3(ubuntu),django,nginx,ubuntu-server,Django,Nginx,Ubuntu Server,我在ubuntu服务器上有一些媒体内容。我可以上传文件。但是当我尝试加载文件时,它会显示403禁止的nginx/1.10.3(ubuntu)。在文件权限中,它会显示rw------ 如何检索所有内容而不出错? 我不熟悉Ubuntu 我用这个片段来恢复文件。但是,它只在单一时间有效。一段时间后,它显示出相同的错误 sudo chmod -R 664 /home/django/media/image/ sudo chmod -R a+X /home/django/media/image/ ngin

我在ubuntu服务器上有一些媒体内容。我可以上传文件。但是当我尝试加载文件时,它会显示403禁止的nginx/1.10.3(ubuntu)。在文件权限中,它会显示rw------

如何检索所有内容而不出错? 我不熟悉Ubuntu

我用这个片段来恢复文件。但是,它只在单一时间有效。一段时间后,它显示出相同的错误

sudo chmod -R 664 /home/django/media/image/
sudo chmod -R a+X /home/django/media/image/

nginx用户必须能够读取这些文件。您可以使用组权限来允许这样做。此外,wsgi用户必须有自己的设置,以使其创建的文件对组也是可读的

在您的情况下,wsgi用户似乎拥有umask
077
,这使得它创建的文件只能由所有者读取(
rw------
)。因此nginx没有读取权限。改为使用umask
027
,这将允许组用户访问这些文件,但不向其写入(nginx没有理由拥有写入访问权限)

例如,如果您使用gunicorn作为wsgi服务器,则可以使用gunicorn标志
--组www--umask 027
。确保gunicorn和nginx用户都属于
www

修复类似这样的权限

# set group to `www` for all files recursively
sudo chgrp www -R /home/django/media/
# set all files to be read/write by owner and readable by group `www`
find /home/django/media/ -type f -exec chmod 640 {} ; 
# same with directories +execute
find /home/django/media/ -type d -exec chmod 750 {} ; 
或者,对文件使用
644
,对目录使用
755
,对umask使用
022
。那么组权限就无关紧要了,因为所有用户都有读取权限


后一个选项不是安全最佳做法,但只要您只给django用户写访问权,它可能就可以了。

如何启用组权限?文件有一个组和一个用户所有者。使用
ls-la
进行调查。请记住,nginx还需要对所有父目录具有读取+执行权限才能读取文件。您如何尝试访问这些文件?通过HTTP方法?你在运行curl吗?我在使用Https。禁用r&WD的组权限您的nginx服务器是否有阻止IP命中端点的黑名单?在nginx配置中查找,并在服务器配置下查找
deny all