启动Nginx后请求资源403解决方案总结

前言

最近在测试服务器上安装并启动Nginx来运行项目,遇到了以前未见过的403错误。php

测试服务器是CentOS的系统,上网搜索了一些办法,大多数都是说web目录权限不够,或者是项目根目录下没有index索引文件。html

偏偏笔者的问题并非常见的两种状况,不过仍是有人提到了第三种特殊状况。极少数的特殊状况,时间长了真的容易忘记,为了不重复踩坑,有必要总结一下。linux

403解决方案

大致上Nginx出现403的缘由有三种,每种都有对应的解决办法。常见的两种缘由就是权限问题或index文件缺失。这里假设web目录为“/www”,项目目录为"/www/OA"。nginx

  • 若是是Nginx对web目录没有操做权限,解决办法以下:web

    1. 修改web目录的读写权限。
    chmod -R 755 /www
    1. 将Nginx的启动用户改成web目录的所属用户,修改/etc/nginx下nginx.conf文件的user项。
  • 若是是项目目录下缺乏index索引文件,解决办法以下:服务器

在项目根目录下建立index.html或index.php文件,通常状况下就是这两个文件了,具体还得看Nginx项目配置文件中具体是如何指定的了。测试

server {
  listen       80;
  server_name  localhost;
  index  index.php index.html;
  root  /www;
}
  • 第三种缘由比较特殊,查看服务器上是否开启了SELinux。code

    SELinux若是是enabled,会产出Nginx的403问题。查看服务器SELinux状态命令以下:server

    /usr/sbin/ sestatus -v

    肯定是SELinux的缘由后,能够选择关闭SELinux,有两种方式:htm

    1. 临时关闭,不须要重启服务器,可是若是服务器重启后会失效。
    setenforce 0
    1. 修改配置文件 /etc/ selinux/config,将SELINUX=enforcing改成SELINUX=disabled,注意修改后须要重启系统。
相关文章
相关标签/搜索