【发布时间】:2013-05-24 09:55:54
【问题描述】:
只是想帮助别人。是的,您只想使用 nginx 提供静态文件,并且您在 nginx.conf 中一切正常:
location /static {
autoindex on;
#root /root/downloads/boxes/;
alias /root/downloads/boxes/;
}
但是,最后,你失败了。您从浏览器收到“403 禁止”...
----------------------------------------答案如下: ----------------------------------------
解决方法很简单:
方式一:以 '/root/downloads/boxes/' 所有者的用户身份运行 nginx
在 nginx.conf 中:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
是的,在第一行 "#user noboy;" ,只需删除 "#" ,并将 "nobody" 更改为您的在 Linux/OS X 中拥有自己的用户名,即更改为“root”进行测试。重启nginx。
注意,最好不要以root身份运行nginx!这里只是为了测试,对黑客来说是危险的。
更多参考,见nginx (engine X) – What a Pain in the BUM! [13: Permission denied]
方式 2:将 '/root/downloads/boxes/' 所有者更改为 'www-data' 或 'nobody'
在终端:
ps aux | grep nginx
获取运行 nginx 的用户名。应该是 'www-data' 或 'nobody' 由 nginx 的版本决定。然后在终端中点击(例如使用 'www-data'):
chown -R www-data:www-data /root/downloads/boxes/
------------------还有一点很重要:---- --------------------------
这些父目录"/"、"/root"、"/root/downloads"应该赋予execute(x)权限'www-data' 或 'nobody'。即
ls -al /root
chmod o+x /root
chmod o+x /root/downloads
更多参考,见Resolving "403 Forbidden" error和Nginx 403 forbidden for all files
【问题讨论】:
-
你也可以把文件权限给nginx所在的组,这是通常做的,也更合乎逻辑一点
-
@rednaw,我也是stackoverflow的新手,很抱歉之前的评论,是的,我在你回答之后做了,但我又失败了。我确实将所有者更改为文件,但浏览器显示“403 禁止”。
-
你重启nginx了吗?此外,nginx 有一个错误日志文件(通常在
/var/log/nginx/),您可以在其中找到更多信息,例如检查错误和访问日志。顺便说一句,也许你应该评论我的答案而不是你的问题。 -
@no_answer_not_upvoted,嘿伙计,小心“root”,如果黑客入侵你的 nginx 服务器,root 将成为黑客。
-
请不要以root身份运行nginx!