nginx的403 Forbidden解决的办法(权限文件和文件不存在、SElinux 开启),nginxselinux


nginx配置好了,出现403 Forbidden主要有两种原因:1、nginx没有访问目录的权限;2、nginx的目录里面没有默认文档,并且没有列出目录的权限。

启动了nginx,访问网站,然后出现

403 Forbidden

1、权限问题

这个就是权限的问题,要保证,nginx对配置的目录有权限。 
首先,我们去查看一下,配置的目录,下文中{nginx}表示你的nginx安装路径:

vi {nginx}/conf/nginx.conf

然后找到这一段:

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /home/xxx/website/nginxweb;
            index  index.html index.htm;
        }
     }

其中的root /home/xxx/website/nginxweb;中的/home/xxx/website/nginxweb就是你的目录,index是你的默认文档。

我们去看看这个目录你是什么权限,这个我就不说了。

然后我们看看我们的nginx是什么权限:

nobody   31222 31159  0 22:52 ?        00:00:00 nginx: worker process

可以看到是nobody用户运行的,所以,我们要修改成,拥有权限的用户,或者修改目录的权限,我说一下修改nginx运行的用户。

在{nginx}/conf/nginx.conf 前面加上一句:

user xxx;就可以了,其中,xxx就是运行nginx的用户。

2、目录里面没有

完成了上面的,访问还出现错误,很有可能是你的目录里没有文件,然后又没有列出目录的权限。 
检查你的/home/xxx/website/nginxweb文件夹里面是否有配置的默认文件,默认文件在nginx.conf里面的index,上面已经介绍过了。

解决办法,在你的/home/xxx/website/nginxweb文件夹里面创建一个index.html的文件试试。


3.SElinux 开启

SELinux是一种安全子系统

它能控制程序只能访问特定文件

一、查看SELinux状态命令:

1、/usr/sbin/sestatus -v      ##如果SELinux status参数为enabled即为开启状态
SELinux status:                 enabled

2、getenforce                 ##也可以用这个命令检查

二、关闭SELinux方法:

1、临时关闭(不用重启机器):

代码如下:
setenforce 0 #设置SELinux 成为permissive模式
#setenforce 1 设置SELinux 成为enforcing模式

2、修改配置文件需要重启机器:

修改/etc/selinux/config 文件

将SELINUX=enforcing改为SELINUX=disabled

重启机器即可

相关内容

    暂无相关文章