網頁顯示 403 Forbidden
Nginx(yum 安裝日志一般在/var/log/nginx/error.log) 錯誤日志顯示
open() "/web/www/one.txt" failed (13: Permission denied), client: 192.168.1.110, server: rumenz.com, request: "GET /one.txt HTTP/1.1", host: "rumenz.com"
總結四種原因:
- SELinux沒有關閉
- Nginx啟動用戶和工作用戶不一致
- 網頁所在的目錄權限不對
- 缺少默認的首頁
解決方案:
SELinux沒有關閉
1.1 臨時關閉SELinux,但是重啟操作系統還會開啟
1.2 永久關閉SELinux
將SELINUX=enforcing 修改為 SELINUX=disabled 狀態
Nginx啟動用戶和工作用戶不一致
[root@rumenz#]ps aux | grep "nginx: worker process" | awk '{print $1}'
nobody
root
修改Nginx 配置文件
vim /etc/nginx/nginx.conf
將 user nobody; 修改為 user root; 重啟Nginx
注意:Nginx的啟動用戶和工作用戶可以不一致,但是要配好網頁目錄的權限,讓工作用戶有訪問網頁目錄的權限
網頁所在的目錄權限問題
3.1 精細控制:網頁根目錄要用x權限(也就是可以cd進去),網頁所在的父級目錄要有r(可讀權限)
3.2 簡單粗暴(不推薦,不安全,但是效果明顯):
chmod -R 777 /web
chmod -R 777 /web/www
缺少默認的首頁
4.1 權限配完了,訪問首頁還顯示403 Forbidden?
4.2 網頁根目錄提供一個默認的首頁:index.html
到此這篇關于Nginx解決403 forbidden的文章就介紹到這了,更多相關Nginx解決403 forbidden內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!