为啥 Nginx 即使使用 root 用户也会返回 403 Forbidden 错误
Posted
技术标签:
【中文标题】为啥 Nginx 即使使用 root 用户也会返回 403 Forbidden 错误【英文标题】:Why Nginx return 403 Forbidden error even using root user为什么 Nginx 即使使用 root 用户也会返回 403 Forbidden 错误 【发布时间】:2020-03-26 04:14:23 【问题描述】:我已经在 CentOS 7 64bit 中安装了 nginx,使用命令 yum install nginx
一切顺利,直到我不更改默认配置。
但是当我想将根目录更改为conf.d/default.conf
中的某个其他位置时,例如:/home/ftpuser
location /
root /home/ftpuser;
index index.html;
和nginx.conf
中的用户到ftpuser
user ftpuser;
其中ftpuser
是普通用户,主目录在/home
位置,但是Nginx返回403错误。即使我在/home
位置创建了一个新的test
目录,权限为777
,Nginx 仍然返回403。
然后我把用户从ftpuser
改成rootuser
,问题依旧存在。
然后我将/home/fptuser
文件夹的权限改为777
by:chmod 777 ftpuser
,但问题依旧存在。
查了很多,给了Nginx最高权限,为什么还是返回403?
如果有人知道,请告诉我原因和解决方法!
Nginx 版本: 1.17.6
更新: 错误日志:
2019/11/30 20:39:19 [错误] 2195#2195: *10 open() “/home/ftpuser/index.html”失败(13:权限被拒绝),客户端: 192.168.133.1,服务器:localhost,请求:“GET / HTTP/1.1”,主机:“192.168.133.134”
【问题讨论】:
@RichardSmith 我更新了问题,错误日志显示权限问题。 @emix 我知道,但我不想禁用 SElinux。由于安全问题,这不是一个很好的解决方法。 这不是一个编程问题,而是严格与服务器相关的。这是一个 SElinux 问题。您可以在日志中找到更多详细信息。 @emix 是的,这就是为什么我使用 Nginx 和 centos7 标签,而不是 java 或 c++ 等。那么如何解决这个问题,禁用 SElinux 不是解决方案。 @emix 错误日志显示了上述问题中的消息。 【参考方案1】:经过一番搜索,终于找到了解决办法。
这是 SELinux 策略问题。
那么如何解决呢?
只需转到this 链接并执行步骤,它将解决 SELinux Policies 问题。
如果其他人在 CentOS 7 中遇到与 Nginx 相同的问题,我希望它可以帮助他们!!
【讨论】:
以上是关于为啥 Nginx 即使使用 root 用户也会返回 403 Forbidden 错误的主要内容,如果未能解决你的问题,请参考以下文章
为啥即使我设置了 STATIC_ROOT 和 urls.py 也会出现 404 错误
为啥即使在指定返回 - 后台线程到主线程问题后代码也会执行?
为啥 pod 即使成功运行也会返回 Error 或 ExitCode:0?
为啥即使文件存在于服务器上,jQuery ajax 也会返回 404 Not found 错误?