Ubuntu22.04部署Django遇502错误:blog.sock权限拒绝求助
解决Nginx访问Gunicorn Unix Socket权限拒绝的502错误
核心问题分析
从错误日志和权限信息来看,/home/glenn目录的权限为drwxr-x---(仅glenn用户及组拥有访问权限),而Nginx以www-data用户运行,无法进入该目录访问sock文件——这才是权限拒绝的根源,而非sock文件本身的权限配置。
具体修复步骤
1. 调整用户目录权限,允许www-data访问
执行以下命令,为/home/glenn目录添加其他用户的执行权限(执行权限允许用户进入目录):
chmod o+x /home/glenn
执行后,/home/glenn的权限会变为drwxr-x--x,此时www-data用户即可进入该目录访问sock文件。
2. 重启服务生效
- 重启Gunicorn服务:
sudo systemctl restart gunicorn
- 重启Nginx服务:
sudo systemctl restart nginx
备选方案:将www-data加入glenn用户组(可选)
若不想开放目录的其他用户权限,可将www-data用户加入glenn用户组:
sudo usermod -aG glenn www-data
执行后同样需要重启Gunicorn和Nginx服务。
配置文件确认
你的gunicorn.service和Nginx站点配置文件本身无问题:gunicorn已将sock文件的组设为www-data,且开放了对应权限,核心限制来自上级目录的访问权限。
内容的提问来源于stack exchange,提问作者Felicity
相关产品推荐
相关产品推荐

