nginx:“/root/index.html”禁止(13:权限被拒绝)

nginx: "/root/index.html" forbidden (13: Permission denied)

我正在安装 nginx。这是我遵循的步骤:

gpasswd -a nginx root

chmod g+x /root

(抱歉,无法正确格式化为代码)

service nginx restart

我访问了 my_domain_name.com 并收到 403 错误。 /var/log/nginx/error.日志内容:

"/root/index.html" is forbidden (13: Permission denied), client: 117.211.86.108, server: my_domain_name.com, request: "GET / HTTP/1.1", host: "my_domain_name.com"

我在亚马逊 linux 实例上,必须这样做

sudo chmod o+x /home/ec2-user/
sudo service nginx restart

不确定安全隐患是什么。

哦!请don't disable SELinux.

首先 — 您 真的 需要提供来自 /root 的文件吗?这实际上是 root 用户的主目录,而不是 web 根目录。这实际上是一个非常糟糕的主意。相反,使用 /var/www/html 或(我的偏好)/srv/www。如果你 使用/root,请确保你没有暴露 ssh 密钥或 authorized_keys 文件、数据库密码或任何类似的东西。这真的是一个糟糕的主意。

其次,与其禁用 SELinux(在这种情况下,它可以保护您免受危险行为),不如正确配置它。在 Fedora 中,设计的 SELinux 策略使 nginx 与其他网络服务器共享此策略,因此,使用 /srv/www/yoursite 作为根,

chcon -R -t httpd_sys_content_t /srv/www/yoursite

应该做。

我通过禁用 SELINUX 并重启解决了这个问题

vi /etc/selinux/config

#SELINUX=enforcing
SELINUX=disabled

重启