我遵循这个教程:
https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-22-04
一切正常(提供静态文件等),但用户上传的媒体文件在尝试访问图像时显示"权限被拒绝":
2023/01/21 09:50:01 [error] 12912#12912: *266 open() "/home/hvn/intranet/intranet/media/images/werkstujk_1_Far44Li.2e16d0ba.fill-322x247-c100.jpg" failed (13: Permission denied), client: xxx.xxx.xxx.xxx, server: xxxxx.net, request: "GET /media/images/werkstujk_1_Far44Li.2e16d0ba.fill-322x247-c100.jpg HTTP/1.1", host: "www.xxxxxx.net", referrer: "https://www.xxxxx.net/blogs/"
我用的是wagtail作为cms系统。
Gunicorn套接字正在用户"hvn"和组"www-data"下运行。
目录和文件权限如下所示:
目录为750,文件为644:
ll | grep media
drwxr-xr-x 5 hvn www-data 4096 Jan 17 22:36 media/
-rw-r--r-- 1 hvn www-data 33857 Jan 21 00:24 werkstujk_1_Far44Li.2e16d0ba.fill-322x247-c100.jpg
我的nginx配置文件正在服务媒体文件夹:
一个二个一个一个
我做错什么了?请帮帮我。谢谢你。
1条答案
按热度按时间kmbjn2e31#
解决:必须在nginx.conf中设置nginx在服务于网站的同一用户上运行:
检查/etc/nginx/nginx.conf中的用户将所有权更改为用户。sudo chown -R nginx:nginx /var/lib/nginx