本文来自:http://laymanz.com/blog/?p=239
在我的Nginx上新增了一个虚拟主机,访问时出现403。
Nginx的error.log 报以下错误: *2658 open() “/xxx/xxxx(dir path)” failed (13: Permission denied)
错误原因:
1. 运行nginx worker进程的帐号没有目标访问目录的读与执行权限。
2. 运行nginx worker进程的帐号没有目标访问文件的读权限。
写个例子。
虚拟主机设置如下:
server {
listen 80;
server_name sample.com;
location / {
root /home/sample/html/;
index index.html;
}
}
默认状态下,nginx worker进程是以nobody的帐号运行的。这可以用ps aux| grep nginx命令查看。
nobady帐号必须具备/home/sample/html/整个目录的读与执行权限。
如果要访问sample.com/index.html,那么nobady帐号必须具备/home/sample/html/index.html的读权限。否则就会报错。