Shi*_*ilo 1 users permissions nginx
我在目录中创建了一个websites
文件夹/
,并使用sudo chmod -R 777 /websites/
.
之后,我进行了更改/etc/nginx/conf.d/default.conf
以指向websites
目录:
server {
listen 80;
server_name localhost;
location / {
root /websites;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /websites/nginx/html;
}
}
Run Code Online (Sandbox Code Playgroud)
但是403 Forbidden
当我尝试浏览到服务器的公共 ip 时,我遇到了, 。
为什么会发生?我该如何解决?
我在 nginx error.log 中有这个:
2017/08/27 20:41:03 [error] 3849#3849: *37 "/websites/index.html" is
forbidden (13: Permission denied), client: **.**.130.159, server:
localhost, request: "GET / HTTP/1.1", host: "**.**.**.120"
Run Code Online (Sandbox Code Playgroud)
错误日志非常清楚地说:
/websites/index.html
,但它不能这是因为13: Permission denied
. 这是系统错误。因此,您的 nginx 配置良好,它尝试读取该文件,但不能。
下一个问题是,为什么不能。首先,您应该检查它的作用。向运行 nginx 的用户(可能是 www-data,所以命令是 : sudo -u www-data /bin/bash
),并尝试自己读取该文件 ( cat /websites/index.html
)。
下一步取决于,结果是什么。
@sebasth 在他的评论中是正确的:
文件/文件夹的权限可能错误,或/和 SELinux 策略不允许访问。如果您启用了 SELinux,您应该检查审核日志(诸如此类的工具
audit2why
可能会有所帮助)。
我认为最可能的两种结果:
chmod
命令看起来没问题,但权限设置不正确 归档时间: |
|
查看次数: |
12665 次 |
最近记录: |