nginx reescrever ou ciclo de redirecionamento interno

12

Estou batendo a cabeça contra uma mesa tentando descobrir o que está causando o ciclo de redirecionamento na configuração do nginx ao tentar acessar a URL que não existe A configuração é a seguinte:

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;
}

este domínio é um simples site HTML ESTÁTICO apenas para algumas finalidades de teste. Eu esperaria que a diretiva error_page fosse chutada em resposta ao PHP-FPM não sendo capaz de localizar arquivos como eu tenho fastcgi_intercept_errors em; no bloco http e na nave error_page configurado, mas estou supondo que a requisição falha mesmo antes disso em algum lugar nos redirecionamentos internos. Qualquer ajuda seria muito apreciada.

    
por gyre 06.07.2012 / 23:56

2 respostas

8

O culpado é: try_files $uri $uri/ ;

link (observe que o último parâmetro é o código de retorno ou o URI para redirecionamento interno)

If none of the files were found, an internal redirect to the uri specified by the last parameter is made.

    
por 11.07.2012 / 02:43
2

Como outros afirmaram, este é o culpado:

    try_files $uri $uri/ ;

Ele cria um loop de redirecionamento, pois o último parâmetro de try_files deve apontar para o local se o arquivo não for encontrado. Eu resolvi isso adicionando um =404 , assim:

    try_files $uri $uri/ =404 ;
    
por 27.12.2016 / 14:58

Tags