nginx部署静态网页关于报错403权限不足的问题

部署静态网页关于报错403 forbidden权限不足的的问题!

今天在使用nginx简单部测试署一个静态网页时,报错一个403的问题,我当时的配置是这样的nginx.conf 中的server是这样配置的

server{
        listen       8081;
        server_name  192.168.2.104;

        location / {
        root      /root/html;
        index     testIndex.html;
        }
}
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://testHtml;
        }
        listen       80;
        server_name  localhost;
 location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://testHtml;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    server{
        listen       8081;
        server_name  192.168.2.104;

         location / {
            root   /root;
            index  index testIndex.html;
        }

    }
    server{
        listen       8081;
        server_name  192.168.2.104;

        location / {
        root      /root/html;
        index     testIndex.html;
        }
}


我当时出现的错便是入下图所出现的情况:
nginx部署静态网页关于报错403权限不足的问题_第1张图片
上面我配置的是root账号的家目录,我把静态页面放在这个目录下了,访问时nginx肯定没有权限去访问了,就算赋值777权限也不行。所以会报错,后面我把静态页面copy到opt目录,一切正常。

下面我来来说说通常会因为那些原因出现403错误

引起nginx 403 forbidden通常是三种情况:

** 1.一是缺少索引文件**

** 2.二是权限问题**

** 3.三是SELinux状态。**
很多人在排查错误的时候,前两个步骤都知道,但是第三个真的很少有人知道。

那么,我们看三种解决nginx报错403的问题?


第一种:

缺少index.html或者index.php文件,就是配置文件中index index.html index.htm这行中的指定的文件。

    server{
        listen       8081;
        server_name  192.168.2.104;

        location / {
        root      /opt/html;
        index     testIndex.html;
        }

如果在/opt/html下面没有index.php,index.html的时候,直接可能就会报403 forbidden。


第二种:

二、权限问题,如果nginx没有web目录的操作权限,也会出现403错误。
解决办法:修改web目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决
如:
把静态页面的目录设置755权限
chmod -R 755 /data


第三种

SELinux设置为开启状态的原因。

SELinux服务有三种配置模式,具体如下:
nforcing:强制启用安全策略模式,将拦截服务的不合法请求。

permissive:遇到服务越权访问时,只发出警告而不强制拦截。

disabled:对于越权的行为不警告也不拦截。

输入getenforce 查看状态是否时启动安全策略模式
如果 nforcing 状态修改成 disabled 状态后重启服务器变可;
如何将SELINUX=enforcing 修改为 SELINUX=disabled 状态:
vim /etc/selinux/config
修改
注释掉
#SELINUX=enforcing
在线面添加
SELINUX=disabled
变可
nginx部署静态网页关于报错403权限不足的问题_第2张图片
当然selinux 的存在时为了服务器数据安全不介意关闭
建议设置selinux放行用户对网站的请求操纵
但是具体怎么实现,请详细去了解一下selinux服务

如果觉着方法还可以,请点个赞再走

你可能感兴趣的:(nginx,linux,nginx,负载均衡)