You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu系统下Nginx无法加载Django站点静态/媒体文件的权限问题

Ubuntu系统下Nginx无法加载Django站点静态/媒体文件的权限问题

看起来你已经把静态和媒体目录的所有者设为www-data了,但还是碰到了403权限拒绝的问题,我帮你梳理几个大概率的原因和对应的解决办法:

1. 检查父目录的遍历权限

Nginx的worker进程是以www-data用户运行的,要访问/home/jamelaumn/myproject里的文件,必须让www-data能遍历到这个目录的所有父级路径。你现在只检查了项目目录本身的权限,但/home/jamelaumn这个用户家目录的权限可能没开放给www-data。

先查看家目录的权限:

ls -ld /home/jamelaumn

如果输出是类似drwx------的权限,说明只有jamelaumn用户能访问这个目录,www-data根本进不去,自然读不到里面的静态文件。

解决办法二选一:

  • 简单粗暴给其他用户添加执行权限(适合测试或非敏感环境):
    chmod o+x /home/jamelaumn
    
  • 更安全的方式:把jamelaumn用户加入www-data组,然后给组添加执行权限:
    usermod -aG www-data jamelaumn
    chmod g+x /home/jamelaumn
    

2. 检查静态文件的实际权限

虽然目录的所有者是www-data,但目录里的文件可能还是其他用户(比如root)所有,这也会导致Nginx无法读取。可以查看单个问题文件的权限验证:

ls -l /home/jamelaumn/myproject/deploystatic/css/general/normalize.css

如果文件所有者不是www-data,递归修改整个静态和媒体目录的所有者即可:

chown -R www-data:www-data /home/jamelaumn/myproject/deploystatic
chown -R www-data:www-data /home/jamelaumn/myproject/media

3. 修正Nginx配置中的alias路径格式

你的Nginx配置里,location /static/对应的alias末尾没有加斜杠,这可能导致路径拼接错误。比如访问/static/css/normalize.css时,Nginx会错误地去找/home/jamelaumn/myproject/deploystaticcss/normalize.css,自然会报错。

修改配置文件/etc/nginx/sites-available/myproject,给alias路径加上末尾的斜杠:

location /static/ {
    alias /home/jamelaumn/myproject/deploystatic/;
}

location /media/ {
    alias /home/jamelaumn/myproject/media/;
}

修改完成后重启Nginx生效:

sudo systemctl restart nginx

4. 排查SELinux(如果你的系统启用了它)

Ubuntu默认是关闭SELinux的,但如果你的系统手动开启了这个安全模块,它可能会阻止Nginx访问用户家目录下的文件。可以临时关闭SELinux测试:

sudo setenforce 0

如果关闭后静态文件能正常加载了,就需要配置SELinux规则来允许Nginx访问这些目录:

sudo semanage fcontext -a -t httpd_sys_content_t "/home/jamelaumn/myproject/deploystatic(/.*)?"
sudo semanage fcontext -a -t httpd_sys_content_t "/home/jamelaumn/myproject/media(/.*)?"
sudo restorecon -Rv /home/jamelaumn/myproject/deploystatic
sudo restorecon -Rv /home/jamelaumn/myproject/media

额外提醒

你的Gunicorn进程目前是用root用户运行的,虽然这不是静态文件权限问题的直接原因,但生产环境下不推荐这么做,存在安全风险。建议后续改成用www-data用户或者专门的项目用户来运行Gunicorn。

备注:内容来源于stack exchange,提问作者Jamelaumn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 07:05:26