403禁止在ubuntu中使用nginx

时间:2015-11-02 10:01:42

标签: nginx

我看过beginner's guide of nginx

server {
    location / {
        root /data/www;
    }

    location /images/ {
        root /data;
    }
}

http://localhost/images/example.png - > /data/images/example.png

http://localhost/some/example.html - > /data/www/some/example.html

所以我的nginx配置:

 server {
            listen 443;
            server_name localhost;
            ssl on;
            ssl_certificate /home/attolee/sslkey/example.crt;
            ssl_certificate_key /home/attolee/sslkey/example.key;
            ssl_session_timeout 5m;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
            ssl_ciphers ALL:!ADH:!EXPORT56:-RC4+RSA:+HIGH:+MEDIUM:!EXP;
            ssl_prefer_server_ciphers on;

            location / {
                    root /home/attolee;
                    index index.html;
            }

            location /hi/ {
                    root /home/attolee;
                    index hi.html;
            }
   }

我想要

  1. https://host/访问/home/attolee/index.html,
  2. https://host/hi/访问/home/attolee/hi/hi.html,
  3. 现在1个工作,2个失败,403被禁止。

    错误日志告诉我13: Permission denied

    所以我检查了自己和/ home / attolee和/ home / attolee / hi /以及hi.html的组。

    drwxr-xr-x  6 attolee attolee 4096 Nov  2 17:08 attolee/
    drw-rw-rw- 2 root    root    4096 Nov  2 17:12 hi/
    -rw-rw-rw- 1 root    root      24 Nov  2 17:12 hi.html
    

    然后使用htop检查nginx进程的USER属性是root。

    如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

首先,在您的示例中,您应该这样做:

root /home/attolee;
index index.html hi.html
location / {
         try_files $uri $uri/ =404;  
}

其次,您不需要以root身份运行nginx。在nginx.conf中,您可以将其更改为www-data。你必须在/ home / attolee /中移动/ home / hi并使用正确的所有者设置/ home / attolee。

答案 1 :(得分:0)

我遇到了这个问题,对我来说,问题在于

中的nginx配置
/etc/nginx/sites-available

我的错是,我已经定义了一些未命名的文件和文件夹位置。所以我编辑了位置,问题开始解决。