Django+Gunicorn+Nginx部署时CSS文件权限拒绝问题求助
解决Gunicorn+Nginx部署Django时CSS文件权限拒绝问题
问题定位
Nginx worker进程以www-data用户运行,无法读取/home/victor/helpme/tickets/static/css/style.css,核心原因是目录/文件权限链不完整——即使顶级目录helpme设为777,父目录或子文件的权限限制仍会导致访问失败。
解决方案
1. 修复用户家目录的访问权限
Nginx进程需要进入/home/victor目录,默认该目录权限通常为700(仅victor用户可访问),需添加其他用户的执行权限(执行权限允许进程进入目录,无需读权限):
chmod o+x /home/victor
2. 修正静态文件目录及文件的权限
确保static目录及其所有子文件/目录对www-data有可读权限:
# 给目录添加读+执行权限 chmod -R 755 /home/victor/helpme/tickets/static # 给文件添加读权限 chmod -R 644 /home/victor/helpme/tickets/static/*
3. 验证Nginx静态资源配置正确性
当前Nginx的/static/配置会将请求/static/css/style.css映射到/home/victor/helpme/tickets/static/css/style.css,需确认static文件夹确实位于/home/victor/helpme/tickets/目录下。如果static实际在项目根目录(/home/victor/helpme/),则修改配置为:
location /static/ { root /home/victor/helpme; }
4. 重启Nginx生效
完成上述操作后,重启Nginx服务:
sudo systemctl restart nginx
额外验证
执行以下命令,确认www-data用户能正常读取目标CSS文件:
sudo -u www-data cat /home/victor/helpme/tickets/static/css/style.css
若能正常输出文件内容,说明权限问题已解决;若仍报错,需继续检查上级目录的权限链。
内容的提问来源于stack exchange,提问作者codevb
相关产品推荐
相关产品推荐

