nginx 访问网站出现 403 禁止访问
现象
- 访问网站一直提示403禁止访问
nginx 错误日志
2021/07/30 14:42:49 [error] 4800#0: *1048 "/www/wwwroot/520.cn/index.php" is forbidden (13: Permission denied), client: 116.22.196.231, server: 520.com, request: "GET / HTTP/2.0", host: "520.com", referrer: "http://baidu.com/" 2021/07/30 14:42:49 [error] 4800#0: *1048 open() "/www/wwwroot/520.cn/favicon.ico" failed (13: Permission denied), client: 116.22.196.231, server: 520.com, request: "GET /favicon.ico HTTP/2.0", host: "520.com", referrer: "https://520.com/"
排查思路
此问题是某个客户突然联系我说,网站访问不了一直提示403无法访问。起因是添加某个域名证书时突然报错。(客户是使用可视化操作运维系统 宝塔 )
具体报错内容为
nginx: [emerg] invalid number of arguments in "root" directive in /www/server/panel/vhost/nginx/520.luobd.cn.conf:7 nginx: configuration file /www/server/nginx/conf/nginx.conf test failed
- ❌ 可能是 .user.ini 文件的限制,导致无权限读取文件(查看限制范围没问题,删了这个防止夸目录限制文件也一样无法正常)
- ❌ 可能是网站目录含有了空格或中文等特殊字符(检查后发现没有)
- ❌ 可能是nginx启动权限与当前访问权限不一致,导致无权限访问(nginx权限与网站文件权限一直是www权限)
- ❌ 因为有具体的保存报错内容,跟根据报错内容怀疑是 填写某个nginx配置文件导致报错,从而导致的nginx访问403
- ✔️ 文件目录缺失权限(直接在网站目录创建文件夹都失败,劳资可是root权限啊!!!)
解决方案
查看当前目录上一级目录文件权限
发现文件被添加了 防止系统中某个关键文件被修改 标志位
直接执行 移除文件目录防止修改权限 即可解决
chattr -i ./wwwroot