nginx location sobrescreve alias

1

Eu tenho um alias "/ temp" que funciona bem, mas quando eu adiciono outro bloco de localização, o alias retorna 404.

Configuração de trabalho: http://mysite.com/temp/blank.gif -> OK

server {
    # ...
    location /temp {
        alias  /var/www/temp;
    }
    # ...
}

Configuração de erros: http://mysite.com/temp/blank.gif -> 404

server {
    # ...
    location /temp {
        alias  /var/www/temp;
    }
    location ~ \.(?:jpg|png|gif)$ {
        expires  30d;
    }
    # ...
}

Aqui está minha configuração completa: link

Como posso resolver isso?

    
por Luistar15 09.05.2013 / 18:27

2 respostas

2

Use um location aninhado para isso.

O nginx corresponde apenas a um bloco location no nível server , por isso você precisa aninhá-los nessa circunstância. Para mais detalhes, consulte a documentação oficial: Como o nginx processa uma solicitação .

server {
    # ...
    location /temp {
        alias  /var/www/temp;
        location ~ /temp/\.(?:jpg|png|gif)$ {
            expires  30d;
        }
    }
    location ~ \.(?:jpg|png|gif)$ {
        expires  30d;
    }
    # ...
}
    
por 09.05.2013 / 20:38
0

Você tem um diretório raiz definido? Por favor poste mais da configuração.

Algumas leituras essenciais também: link

    
por 09.05.2013 / 18:31

Tags