我使用默认配置,而添加特定目录与Nginx安装在我的ubuntu 12.04机器上。
server { #listen 80; ## listen for ipv4; this line is default and implied #listen [::]:80 default ipv6only=on; ## listen for ipv6 index index.html index.htm; # Make site accessible from http://localhost/ server_name localhost; location / { # First attempt to serve request as file,then # as directory,then fall back to index.html root /username/test/static; try_files $uri $uri/ /index.html; # Uncomment to enable naxsi on this location # include /etc/Nginx/naxsi.rules } ... ... }
我只想要一个简单的静态Nginx服务器来提供该目录中的文件。但是,检查error.log我看到
2014/09/10 16:55:16 [crit] 10808#0: *2 stat() "/username/test/static/index.html" Failed (13: Permission denied),client:,server: localhost,request: "GET /favicon.ico HTTP/1.1",host: "domain" 2014/09/10 16:55:16 [error] 10808#0: *2 rewrite or internal redirection cycle while internally redirecting to "/index.html
我已经做了chown -R www-data:www-data on / username / test / static,我把它们设置为chmod 755.我不知道还有什么需要设置。
Nginx在目录中操作,所以如果你不能从Nginx用户cd到那个目录,那么它会失败(和你的日志中的stat命令一样)。确保www-user可以一直cd到/ username / test / static。您可以通过运行来确认统计信息将失败或成功
sudo -u www-data stat /username/test/static
在你的情况下,可能/ username目录是这里的问题。通常www-data没有cd到其他用户主目录的权限。
在这种情况下最好的解决方案是添加www-data到用户名组:
gpasswd -a www-data username
并确保用户名组可以输入路径中的所有目录:
chmod g+x /username && chmod g+x /username/test && chmod g+x /username/test/static
要使更改生效,请重新启动Nginx
Nginx -s reload