nginx靜態資源文件沒法訪問,403 forbidden錯誤

      今天在搭建nginx環境時出現一個奇怪問題,配置的靜態資源目錄下面文件沒法訪問,瀏覽器訪問出現403 forbidden,環境是centos7 + nginx 1.6。nginx.conf中http配置以下:linux

 

[plain] view plain copy
  1. ……  
  2.   
  3. http {  
  4.     include       mime.types;  
  5.     default_type  application/octet-stream;  
  6.     sendfile        on;  
  7.     keepalive_timeout  65;  
  8.   
  9.     upstream  tomcat_server {  
  10.         server   10.10.100.52:8080;  
  11.     }  
  12.   
  13.     server {  
  14.         listen  80;  
  15.         charset  utf-8;  
  16.         server_name  localhost;  
  17.   
  18.         location /fcm/ {  
  19.              index  index.html index.htm;  
  20.              proxy_pass       http://tomcat_server;  
  21.              proxy_set_header  X-Real-IP  $remote_addr;  
  22.              client_max_body_size  100m;  
  23.         }  
  24.   
  25.         location /static/ {  
  26.            root /home/www/static;  
  27.         }  
  28.   
  29.         error_page   500 502 503 504  /50x.html;  
  30.         location = /50x.html {  
  31.             root   html;  
  32.         }  
  33.     }  
  34. }  
  35.   
  36. ……  

      從配置上看沒有什麼問題,並且這裏配置的fcm轉發到tomcat是沒問題的,以前環境都是這麼配的都沒問題,查看nginx的log文件,發現錯誤日誌中靜態文件訪問都出現 Permission denied的權限錯誤,可是將/home/www/static目錄賦予777的最高權限仍是不能解決。nginx

 

      後來看見nginx.conf頭部有一行註釋的#user  nobody; 遂想可能和這有關係,取消註釋,重啓nginx,訪問仍是有問題,查了一下這行是設置nginx運行用戶的,遂將nobody改爲root,重啓好了,找了很久的問題竟然是這個緣由,喜大普奔!!centos

 

      後來想之前我都是在Linux的root用戶下安裝軟件和操做,nginx是在root下安裝的,因此沒設user也沒問題,此次因爲centos7剛出來因此我下載了一個cenos嚐鮮,並新建的一個用戶,不是用root用戶操做的因此就不和諧了。瀏覽器

 

      因此最終解決方法是在nginx.conf配置文件頭部加user root:tomcat

[plain] view plain copy
  1. user  root;  
  2. worker_processes  8;  
  3.   
  4. #error_log  logs/error.log;  
  5. #error_log  logs/error.log  notice;  
  6. #error_log  logs/error.log  info;  
  7. #pid        logs/nginx.pid;  
  8.   
  9. events {  
  10.     worker_connections  1024;  
  11. }  
  12.   
  13. …… 
相關文章
相關標籤/搜索