nginx está me dando 403 proibido em index.html, as permissões estão corretas, a configuração é copiada de outro servidor

3

Então, nginx está me dando uma página de erro 403 Proibida quando eu tento acertar o link que deve cuspir uma página de tributo para Rik Mayall, assim como o link (não deve demorar muito para adivinhar meu esquema de nomeação :)).

namei -l /www/vhosts/mayall.syniq.co.uk/public/index.html produz o seguinte:

f: /www/vhosts/mayall.syniq.co.uk/public/index.html
drwxr-xr-x root     root     /
drwxr-xr-x www-data www-data www
drwxr-xr-x www-data www-data vhosts
drwxr-xr-x www-data www-data mayall.syniq.co.uk
drwxr-xr-x www-data www-data public
-rw-r--r-- www-data www-data index.html

Portanto, não são as permissões. Minha configuração vhost é a seguinte:

server {
    listen *:80;
    listen [::]:80;

    server_name mayall.syniq.co.uk;

    # Character Set
    charset utf-8;

    # Logs
    access_log /www/vhosts/mayall.syniq.co.uk/logs/access_log.nginx;
    error_log /www/vhosts/mayall.syniq.co.uk/logs/error_log.nginx;

    # Directory Indexes
    index index.html index.htm;

    root /www/vhosts/mayall.syniq.co.uk/public;
    location / {
        try_files $uri $uri/ =404;
    }

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt  { log_not_found off; access_log off; }

    # Block access to .htaccess
    location ~ \.ht {
        deny all;
    }
}

Isso é o que aparece nos registros:

2014/10/01 18:58:20 [error] 20957#0: *1 access forbidden by rule, client: 31.49.162.112, server: mayall.syniq.co.uk, request: "GET / HTTP/1.1", host: "mayall.syniq.co.uk"
2014/10/01 18:58:30 [error] 20957#0: *1 access forbidden by rule, client: 31.49.162.112, server: mayall.syniq.co.uk, request: "GET /index.html HTTP/1.1", host: "mayall.syniq.co.uk"

Alguma idéia?

    
por Benjamin Nolan 01.10.2014 / 21:14

1 resposta

6

Então, um dos caras do #nginx da freenode apontou isso para mim, mas eu acho que ele não queria postar a resposta aqui.

O motivo pelo qual estou obtendo o 403 é porque o bloco location ~ \.ht está correspondendo à .ht em index.html e, portanto, está bloqueando incorretamente corretamente a solicitação.

A correção é simplesmente adicionar um / antes do. da seguinte forma:

location ~ /\.ht {
    deny all;
}
    
por 02.10.2014 / 00:31

Tags