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

Nginx部署Django静态文件遇403 Forbidden(权限拒绝)错误求助

解决Nginx部署Django时静态文件403权限拒绝问题

核心原因

Nginx运行用户(通常为www-data或nginx)没有权限读取/home/megasoft/bots/hisoblovchibot/backend/static/目录及上级路径下的文件。

排查与修复步骤

1. 确认Nginx运行用户

执行命令查看Nginx实际运行的用户:

ps aux | grep nginx

输出结果第一列的用户即为Nginx的运行身份(比如www-data)。

2. 检查目录权限链

静态文件的访问要求路径上所有层级的目录都对Nginx用户开放可执行权限(允许进入目录),同时文件本身需要可读权限。

执行命令查看关键目录的权限:

ls -ld /home/megasoft/ /home/megasoft/bots/ /home/megasoft/bots/hisoblovchibot/ /home/megasoft/bots/hisoblovchibot/backend/ /home/megasoft/bots/hisoblovchibot/backend/static/

3. 修复权限

方式一:直接开放目录与文件权限

假设Nginx运行用户是www-data,执行以下命令:

  • 给上级目录添加可执行权限(允许Nginx进入目录):
chmod +x /home/megasoft/ /home/megasoft/bots/ /home/megasoft/bots/hisoblovchibot/ /home/megasoft/bots/hisoblovchibot/backend/
  • 给静态文件目录及内部文件添加可读权限:
chmod -R 755 /home/megasoft/bots/hisoblovchibot/backend/static/

方式二:将Nginx用户加入文件所属组

如果静态文件属于megasoft用户,将Nginx用户加入该用户组:

usermod -aG megasoft www-data

之后重启Nginx生效:

systemctl restart nginx

4. 检查SELinux(CentOS/RHEL系列系统)

若服务器启用了SELinux,可能会阻止Nginx访问用户家目录下的文件。临时关闭SELinux测试:

setenforce 0

如果测试有效,可修改配置永久调整(编辑/etc/selinux/config,将SELINUX=enforcing改为SELINUX=permissive),之后重启系统。

5. 验证修复

完成权限调整后,重启Nginx:

systemctl restart nginx

再次访问静态文件,确认403错误是否消除。


内容的提问来源于stack exchange,提问作者user22482987

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 18:33:34