版權聲明:本文爲博主原創文章,未經博主容許不得轉載。html
今天在搭建nginx環境時出現一個奇怪問題,配置的靜態資源目錄下面文件沒法訪問,瀏覽器訪問出現403 forbidden,環境是centos7 + nginx 1.6。nginx.conf中http配置以下:linux
- ……
-
- http {
- include mime.types;
- default_type application/octet-stream;
- sendfile on;
- keepalive_timeout 65;
-
- upstream tomcat_server {
- server 10.10.100.52:8080;
- }
-
- server {
- listen 80;
- charset utf-8;
- server_name localhost;
-
- location /fcm/ {
- index index.html index.htm;
- proxy_pass http://tomcat_server;
- proxy_set_header X-Real-IP $remote_addr;
- client_max_body_size 100m;
- }
-
- location /static/ {
- root /home/www/static;
- }
-
- error_page 500 502 503 504 /50x.html;
- location = /50x.html {
- root html;
- }
- }
- }
-
- ……
從配置上看沒有什麼問題,並且這裏配置的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
- user root;
- worker_processes 8;
-
- #error_log logs/error.log;
- #error_log logs/error.log notice;
- #error_log logs/error.log info;
- #pid logs/nginx.pid;
-
- events {
- worker_connections 1024;
- }
-
- ……