2013-08-07 13 views
6

Sto configurando il mio blog su una nuova istanza EC2 perché uno dei siti sul server che lo ospita attualmente è DDoSed. Ho qualche problema con nginx, perché posso vedere tutte le pagine bene ma 403 sull'indice, o vedere l'indice ma 404 sulle pagine (a seconda della configurazione che sto usando)403 vietato sull'indice di wordpress con nginx, il resto delle pagine funziona bene

Ecco il mio nginx config:

server { 
    listen  80; 

    server_name www.test.com; 
    server_name test.com; 
    root /www/blog; 

    include conf.d/wordpress/simple.conf; 
} 

E simple.conf:

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

    location = /robots.txt { 
      allow all; 
      log_not_found off; 
      access_log off; 
    } 

    location/{ 
      # This is cool because no php is touched for static content. 
      # include the "?$args" part so non-default permalinks doesn't break when using query string 
      try_files $uri $uri/ /index.php?$args; 
    } 

    location ~ \.php$ { 
      #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini 
      include fastcgi.conf; 
      fastcgi_intercept_errors on; 
      fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; 
    } 

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ { 
      expires max; 
      log_not_found off; 
    } 

se cambio il try_files $ uri $ uri//index.php?$args; all'indice index.php, la prima pagina funziona bene e il resto sarà 404. Se lo lascio così, la prima pagina è 403.

Ecco il log degli errori:

2013/08/07 19:19:41 [error] 25333#0: *1 directory index of "/www/blog/" is forbidden, client: 64.129.X.X, server: test.com, request: "GET/HTTP/1.1", host: "www.test.com" 

Quello la directory è 755 sull'utente nginx:

drwxr-xr-x 6 nginx nginx 4096 Aug 7 18:42 blog 

C'è qualcosa di ovvio che sto sbagliando?

Grazie!

risposta

17

Aggiungi index index.php; Nel blocco del server, se non funziona allora avete bisogno di rimuovere il $uri/ perché non si vuole fare un autoindex on


EDIT: appena notato che hai già capito il problema, in modo da io aggiungo il ragionamento dietro di esso, il motivo per cui avevi bisogno autoindex on; è perché senza di essa nginx seguirà le regole try_files,

  1. Verificare se c'è un file chiamato / e, naturalmente, non riesce.
  2. Verificare se esiste una directory denominata / (aggiungendo root sarebbe = /www/blog/), questo controllo avrà esito positivo, quindi tenta di elencare il contenuto della cartella.
  3. Dato che non è stato specificato autoindex on;, per impostazione predefinita nginx dovrebbe vietare l'elenco delle directory, pertanto restituisce un errore 403 vietato.
  4. Il resto del sito funziona bene perché non supera il test $uri/ o non arriva, perché probabilmente non dispone di una cartella denominata image.jpg o stylesheet.css ecc
0

Sembra che non si possano inviare argomenti al CMS in modo che questo non mostri questa uris che porta informazioni dal database e reindirizza alla pagina 403.

+0

Non sei sicuro di quello che vuoi dire lì, Sto inviando gli argomenti attraverso? $ Args? –

1

Sembra che avevo bisogno di index.php soluzione: infatti nel server {} definizione e non nella posizione {}

+0

lol mi sono appena reso conto che hai risposto già dopo che ho risposto, non ho notato, suppongo che modificherò la mia risposta per spiegare perché. –

Problemi correlati