No tengo suficiente reputación para comentar por qué la respuesta aceptada haría que los archivos ya no aparezcan, ¡pero lo descubrí y me gustaría ayudar!
Version corta:
¡Asegúrese de tener un directorio raíz especificado para su bloque de ubicación en las imágenes si no tiene un conjunto global!
Versión larga a continuación:
En primer lugar, mi método para implementar esta solución fue realmente similar a esta respuesta , donde escribes la regla (como en la respuesta aceptada):
location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
expires 30d;
add_header Pragma public;
add_header Cache-Control "public";
}
en un archivo img-cache.conf
y luego incluya ese archivo en su server {...}
directiva.
Mi ejemplo de somesite.com en mi carpeta de sitios disponibles:
#Image Caching
include /etc/nginx/conf/img-cache.conf;
De esa manera, puede agregar el bloque de ubicación de almacenamiento en caché de imágenes a varios sitios que pueda estar ejecutando.
En segundo lugar, tengo una situación en la que mi / var / www / contiene dos carpetas que permito como public_html: seguridad y capacitación, por lo que tengo que crear bloques de ubicación específicos en la directiva del servidor de mi sitio para distinguir estas carpetas.
Como tal, no tengo un conjunto de directorios raíz global .
Por lo tanto, cuando crea los bloques de ubicación de la imagen, es posible que no les proporcione un directorio raíz desde el que buscar las imágenes.
Mi solución fue entonces:
location ~ ^/training.+\.(?:ico|css|js|gif|jpe?g|png)$ {
root /var/www/;
expires 7d;
add_header Pragma public;
add_header Cache-Control "public";
try_files $uri 404;
}
location ~ ^/.+\.(?:ico|css|js|gif|jpe?g|png)$ {
root /var/www/secure;
expires 7d;
add_header Pragma public;
add_header Cache-Control "public";
try_files $uri 404;
}