Para mi servidor NGINX tengo un servidor virtual configurado solo para distribuir contenido estático. En este momento estoy tratando de configurarlo para que las imágenes tengan una fecha de caducidad. Sin embargo, cuando creo una directiva de ubicación para esto, todo solo resulta en un 404.
Mi configuración ahora se ve así:
/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;
}
}
Tenga en cuenta que este archivo se incluye desde /etc/nginx/nginx.conf, dentro de una directiva http
Estoy intentando acceder a la imagen, a, digamos ... static.example.com/images/screenshots/something.png
. Efectivamente, la imagen también existe en /srv/www/static/images/screenshots/something.png
. Sin embargo, ir a dicha dirección no funciona y simplemente me dice 404 No encontrado .
Sin embargo, si elimino location /images
y cambio location /
a lo siguiente ...
location / {
root /srv/www/static;
}
¡Funciona! ¿Qué estoy haciendo mal aquí?
fuente
root
dentrolocation
es una mala práctica, ¿por qué lo están haciendo ellos mismos en docs / http / ngx_http_core_module.html # alias ? (vea donde dice " es mejor usar la directiva raíz en su lugar ") CORRECCIÓN : bien, parece que lo que está mal es definir la raíz primaria en una ubicación, no cualquier raíz