riscrittura di nginx o ciclo di reindirizzamento interno


13

Sto sbattendo la testa contro un tavolo cercando di capire cosa sta causando il ciclo di reindirizzamento nella mia configurazione nginx quando provo ad accedere all'URL che non esiste La configurazione procede come segue:

server {
        listen       127.0.0.1:8080;
        server_name  .somedomain.com;
    root  /var/www/somedomain.com;

        access_log /var/log/nginx/somedomain.com-access.nginx.log;
    error_log  /var/log/nginx/somedomain.com-error.nginx.log debug;

        location ~* \.php.$ {
        # Proxy all requests with an URI ending with .php*
        # (includes PHP, PHP3, PHP4, PHP5...)
        include /etc/nginx/fastcgi.conf;
        }

        # all other files
        location / {
            root  /var/www/somedomain.com;
        try_files $uri $uri/ ;
        }

    error_page 404 /errors/404.html;
        location /errors/ {
                alias /var/www/errors/;
        }       

        #this loads custom logging configuration which disables favicon error logging
        include /etc/nginx/drop.conf;
}

questo dominio è un semplice sito HTML STATICO solo per scopi di test. Mi aspetto che la direttiva error_page si inserisca in risposta a PHP-FPM che non è in grado di trovare determinati file poiché ho fastcgi_intercept_errors; nel blocco http e nella navata_pagina_impostazione impostata, ma suppongo che la richiesta fallisca anche prima da qualche parte sui reindirizzamenti interni. Qualsiasi aiuto sarebbe molto apprezzato.


Il browser client sta segnalando un ciclo di reindirizzamento o è nginx? Se è il client, in quale posizione vengono reindirizzati?
Shane Madden

entrambi lo stanno segnalando. Il client alla fine finisce con l'URL di /errors//errors//errors//errors//errors/...404.html
milosgajdos

Com'è la voce di registro di nginx?
Shane Madden

Risposte:


11

Il colpevole è: try_files $uri $uri/ ;

http://nginx.org/r/try_files (notare che l'ultimo parametro è il codice di ritorno o l'URI per il reindirizzamento interno)

Se non viene trovato nessuno dei file, viene eseguito un reindirizzamento interno all'uri specificato dall'ultimo parametro.


Grazie. Ho appena avuto uno di questi errori con una configurazione LEMP a traliccio radicale. È successo dopo l'importazione di dati WooCommerce. Non l'ho mai avuto prima. Cosa consiglieresti in questi casi? Rimuovere il parametro $uri/? Vedi il parametro qui: github.com/roots/trellis/blob/…
rhand

2

Come altri hanno affermato, questo è il colpevole:

    try_files $uri $uri/ ;

Crea un ciclo di reindirizzamento, poiché l'ultimo parametro di try_filesdovrebbe puntare alla posizione se il file non viene trovato. L'ho risolto aggiungendo un =404, in questo modo:

    try_files $uri $uri/ =404 ;
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.