Django部署SSL后静态资源403权限问题求助(Nginx+Ubuntu)
修复Ubuntu Nginx部署Django后静态资源403权限问题
核心问题是**/root目录的默认权限限制**:/root目录默认权限为700(仅root用户可访问),即便你给/root/memcur/static设置了正确的权限,Nginx运行的www-data用户也无法穿透/root目录的权限屏障,导致无法读取静态资源。
修复步骤(优先推荐方案)
迁移项目到非root目录
把整个项目移到web服务常用的/var/www目录下,避免root目录的权限限制:sudo mv /root/memcur /var/www/重新设置静态目录权限:
sudo chown -R www-data:www-data /var/www/memcur/static/ sudo chmod -R 755 /var/www/memcur/static/更新Nginx配置
打开你的Nginx站点配置文件(通常在/etc/nginx/sites-available/memcur.com),找到处理静态资源的location /static/块,将root路径从/root/memcur/修改为/var/www/memcur/:location /static/ { root /var/www/memcur/; expires 30d; }测试配置有效性并重启Nginx:
sudo nginx -t sudo systemctl reload nginx
备选方案(不推荐,有安全风险)
如果实在不想迁移项目,可以临时给/root目录添加其他用户的执行权限(允许www-data进入目录),但这会降低root目录的安全性:
sudo chmod o+x /root/
执行后再检查Nginx日志,静态资源应该能正常加载,但不建议长期保留这个设置。
内容的提问来源于stack exchange,提问作者Saiful Islam
相关产品推荐
相关产品推荐

