最近在测试服务器上安装并启动Nginx来运行项目,遇到了以前未见过的403错误。php
测试服务器是CentOS的系统,上网搜索了一些办法,大多数都是说web目录权限不够,或者是项目根目录下没有index索引文件。html
偏偏笔者的问题并非常见的两种状况,不过仍是有人提到了第三种特殊状况。极少数的特殊状况,时间长了真的容易忘记,为了不重复踩坑,有必要总结一下。linux
大致上Nginx出现403的缘由有三种,每种都有对应的解决办法。常见的两种缘由就是权限问题或index文件缺失。这里假设web目录为“/www”,项目目录为"/www/OA"。nginx
若是是Nginx对web目录没有操做权限,解决办法以下:web
chmod -R 755 /www
若是是项目目录下缺乏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
setenforce 0