Nginx解決403 forbidden

  • 網頁顯示 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"

總結四種緣由:html

  1. SELinux沒有關閉
  2. Nginx啓動用戶和工做用戶不一致
  3. 網頁所在的目錄權限不對
  4. 缺乏默認的首頁

解決方案:linux

  1. SELinux沒有關閉

1.1 臨時關閉SELinux,可是重啓操做系統還會開啓nginx

setenforce=0

1.2 永久關閉SELinuxweb

vim /etc/selinux/config
將SELINUX=enforcing 修改成 SELINUX=disabled 狀態
  1. Nginx啓動用戶和工做用戶不一致
[root@rumenz#]ps aux | grep "nginx: worker process" | awk '{print $1}'
nobody
root

修改Nginx 配置文件vim

vim /etc/nginx/nginx.conf

將 user nobody; 修改成 user root;  重啓Nginx
注意:Nginx的啓動用戶和工做用戶能夠不一致,可是要配好網頁目錄的權限,讓工做用戶有訪問網頁目錄的權限
  1. 網頁所在的目錄權限問題

3.1 精細控制:網頁根目錄要用x權限(也就是能夠cd進去),網頁所在的父級目錄要有r(可讀權限)
3.2 簡單粗暴(不推薦,不安全,可是效果明顯):安全

chmod -R 777 /web
chmod -R 777 /web/www
  1. 缺乏默認的首頁

4.1 權限配完了,訪問首頁還顯示403 Forbidden?
4.2 網頁根目錄提供一個默認的首頁:index.htmlspa

相關文章
相關標籤/搜索