nginx permission root

2013年09月18日

nginx 权限问题的解决方法

按照下面方法配置nginx时出现用户权限问题

	server{
	listen 4002;
	server_name localhost;
	access_log logs/access.log;
	location / {
	   proxy_set_header X-Real-IP $remote_addr;
	   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	   proxy_set_header Host $http_host;
	   proxy_set_header X-NginxX-Proxy true;
	   proxy_pass http://backend;
	   proxy_redirect off;	   
	   proxy_http_version 1.1;
	   proxy_set_header Upgrade $http_upgrade;
	   proxy_set_header Connection "upgrade";
	   }
	   }
	 upstream backend {
	 server 127.0.0.1:3201;
	 }

参照nginx 13:permission denied solved
The root directive is the problem here. Quote from the doc:
note: Keep in mind that the root will still append the directory to the request so that a request for “/i/top.gif” will not look in “/spool/w3/top.gif” like might happen in an Apache-like alias configuration where the location match itself is dropped. Use the alias directive to achieve the Apache-like functionality.
Basically, only use root for real roots: if the content is to be at / use root. If it’s going to end on a subfolder, use alias:

location  /map/ {
  alias  /home/user/public_html/map/;
}   Also check what user nginx is running as and make sure that this user can access /home/user/public_html/map

期待您的分享与讨论: