最近在測試服務器上安裝並啓動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