403 Proibito quando provo a raggiungere la mia semplice pagina di test


13

Ho appena installato nginx e sto provando a configurare il mio primo sito. Sto cercando di usare nginx con php-fpm. nginx è installato (quando vado sul mio ip ottengo il benvenuto predefinito alla pagina nginx).

Ora sto cercando di eseguire un semplice script in esecuzione:

<?php
phpinfo();

Ma continuo a colpire una pagina proibita 403. Nel registro del mio host virtuale posso vedere molte linee come:

2012/05/18 01:29:45 [error] 4272#0: *1 access forbidden by rule, client: x.170.147.49, server: example.com, request: "GET / HTTP/1.1", host: "example.com"

Il file è /srv/www/test/index.phpdi cui nginx è il proprietario (sono andato per quanto riguarda 777il percorso completo incluso il file senza risultati).

Ho verificato che nginx è effettivamente in esecuzione sotto utente e gruppo nginx/nginxnella configurazione ed è così. In nginx.conf ho modificato il percorso di inclusione della configurazione predefinita per assicurarmi che nessun'altra configurazione si frapponga ( include /etc/nginx/sites-enabled/).

La configurazione che sto usando sembra (se hai bisogno di altre configurazioni (php-fpm / nginx.conf) per favore fammi sapere):

server {
    listen 80;

    server_name example.com;
    root /srv/www/test;
    access_log /var/log/nginx/example-access.log;
    error_log  /var/log/nginx/example-error.log error;

    location ~ /.          { access_log off; log_not_found off; deny all; }
    location ~ ~$           { access_log off; log_not_found off; deny all; }

    location ~* .(js|css|png|jpg|jpeg|gif|ico|xml|swf|flv|eot|ttf|woff|pdf|xls|htc)$ {
        add_header Pragma "public";
        add_header Cache-Control "public, must-revalidate, proxy-revalidate";
        access_log off;
        log_not_found off;
        expires   360d;
    }

    location ~ /.ht {
        deny all;
        access_log off;
        log_not_found off;
    }

    location ~ /. {
        access_log off;
        log_not_found off;
        deny all;
    }

    location ~ ^/(index|frontend_dev|admin|staging).php($|/) {
        #rewrite ^/(.*)/$ /$1 permanent;
        fastcgi_split_path_info ^(.+.php)(.*)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;

    }

    location / {
        index index.php;
        try_files $uri /index.php?$args;
    }
}

Risposte:


22

La tua configurazione lo sta intenzionalmente bloccando:

location ~ /. {
    access_log off;
    log_not_found off;
    deny all;
}

Che corrisponderà a qualsiasi richiesta in cui una barra è seguita da un personaggio di qualsiasi tipo; il .carattere in un'espressione regolare significa "qualsiasi carattere".

Suppongo che volevi verificare un valore letterale .; sarebbe questa configurazione:

location ~ /\. {

Fammi sapere se non è così!


OMG, mi sento così stupido ora (considerando il fatto che ho recitato in questo per un po 'di tempo). Grazie per la risposta immediata!
user6669,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.