欢迎访问的小伙伴! 希望在这里能帮到你。有问题请多多指教~ 点击联系站长

Nginx出现403 forbidden怎么办?selinux是元凶

Linux 焦康阳 0评论

近日使用虚拟机调试nginx得时候,有遇见一个让人头疼得事。使用nginx架设了一个静态网站,但是老是报错403 forbidden错误。

排错

既然报错了 ,我们就先去/var/log/nginx/error.log中查看报错信息。

结果发现是找不到文件。出现这个问题,我得第一反应就去检查nginx得配置文件了,结果反复检查确定配置文件没用问题。

检查权限

如果nginx没有web目录的操作权限,也会出现403错误 。然后果断去检查web目录得权限问题,没有问题,为了确保无疑,我继续使用chmod -R 777 将目录重新给了一边权限。应该没用问题了,可是竟然扯淡得还是403错误。

作为一个nginx得新手,我得网站也是在centos上面架设得,上面一个wordpress博客,一个静态网站之前完全没有遇到这个问题。

403元凶SELinux

经过各种百度终于在一篇排名靠后的文章中找到了答案,原因是红帽系统中的selinux在作怪。selinux是红帽系列系统中的一个安全机制。控制者系统中的很多权限问题。我们的403报错就是它在作怪了。

SELinux一共有3种状态,分别是Enforcing,Permissive和Disabled状态。第一种是默认状态,表示强制启用,第二种是宽容的意思,即大部分规则都放行。第三种是禁用,即不设置任何规则。

解决办法

查看当前selinux的状态,如果是强制启动则改为宽容或者禁止状态。

1.使用 getenfore命令查看selinux状态,显示Enforcing 说明就是它在影响
2. setenforce permissive   #将状态改为宽容模式,这时候我们发现网站已经可以正常访问了,但是这个只是临时更改,当我们下次重启机子又会自动恢复,所以我们要一劳永逸
3. vi /etc/selinux/config    #因此我们需要通过修改设置文件,让某个配置永久生效。配置文件的位置是:/etc/selinux/config 。
4. 将config中的 SELINUX=enforcing 改为SELINUX=permissive  或者更改为disable保存退出
5.reboot   #重启机子生效
喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址