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.