nginx:“在/root/index.html“;禁止(13:拒绝许可)

nginx:“在/root/index.html“;禁止(13:拒绝许可),nginx,server,fedora,Nginx,Server,Fedora,我正在安装nginx。以下是我遵循的步骤: 在/root目录中生成index.html文件 编辑/etc/nginx/nginx.conf。编辑后,它看起来如下所示: user nginx; worker_processes 1; error_log /var/log/nginx/error.log; ... http { ... server { listen 80 default_server; server_name

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

  • 在/root目录中生成index.html文件
  • 编辑/etc/nginx/nginx.conf。编辑后,它看起来如下所示:

    user  nginx;
    worker_processes  1;
    
    error_log  /var/log/nginx/error.log;
    ...
    
    http {
       ...
    
       server {
            listen       80 default_server;
            server_name  my_domain_name.com;
            root   /root;
        ...
    }
    
  • 以下问题我给出了权限:
gpasswd-一个nginx根

chmod g+x/根

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

  • 我重新启动了服务器:
服务nginx重启

我访问了我的域名,发现403错误/var/log/nginx/error.log内容:

"/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"

我在一个amazon linux实例上,不得不这样做

sudo chmod o+x /home/ec2-user/
sudo service nginx restart
不确定安全含义是什么。

哦!求你了

首先-您真的需要从
/root
提供文件吗?这实际上是root用户的主目录,而不是web root。这实际上是一个非常糟糕的主意。相反,请使用
/var/www/html
或(我的首选)
/srv/www
。如果确实使用了
/root
,请确保未公开ssh密钥或
授权密钥
文件、数据库密码或任何类似内容。这真的只是个坏主意

其次,与其禁用SELinux(在本例中,它保护您不做危险的事情),不如正确配置它。在Fedora中,设计的SELinux策略使nginx与其他Web服务器共享该策略,因此,使用
/srv/www/yoursite
作为根

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

应该这样做。

太棒了!这在任何Fedora安装教程中都没有提到,对我和其他人来说都是非常重要的一部分。工作得很有魅力!向上投票。