Para o meu servidor NGINX, tenho um servidor virtual configurado apenas para distribuir o conteúdo estático. No momento, estou tentando configurá-lo para que as imagens tenham um prazo de validade. No entanto, quando eu crio uma diretiva de localização para isso, tudo resulta em um 404.
Minha configuração agora está assim:
/srv/www/static.conf
server {
listen 80;
server_name static.*.*;
location / {
root /srv/www/static;
deny all;
}
location /images {
expires 1y;
log_not_found off;
root /srv/www/static/images;
}
}
Observe que este arquivo está incluído em /etc/nginx/nginx.conf, dentro de uma diretiva http
Estou tentando acessar a imagem, em, vamos dizer ... static.example.com/images/screenshots/something.png
. Com certeza, a imagem também existe em /srv/www/static/images/screenshots/something.png
. No entanto, ir para esse endereço não funciona e simplesmente me diz 404 Não encontrado .
No entanto, se eu remover location /images
e mudar location /
para o seguinte ...
location / {
root /srv/www/static;
}
Funciona! O que eu estou fazendo errado aqui?
fonte
root
dentrolocation
é uma prática inadequada , como é que eles mesmos estão usando docs / http / ngx_http_core_module.html # alias ? (ver onde ele diz que " é melhor usar a diretiva raiz em vez ") CORREÇÃO : bem, parece que o que está errado é a definição da raiz primária em um local, não apenas qualquer raiz