Estoy usando nginx para almacenar mi contenido estático, ¿hay alguna manera de que pueda configurar los encabezados de caducidad para cada archivo que cumpla con una regla específica? Por ejemplo, ¿puedo establecer el encabezado de caducidad para todos los archivos que tienen una extensión de '.css'?
96
root
conjunto, en ese caso debería agregar las directivas a ese bloque. (Sé que esto es 2 años tarde, pero para futuros ciudadanos)La
location
directivaLa
expires
directivafuente
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):
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:
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:
fuente
.conf
. La carpeta apropiada ennginx/1.14.0 (Ubuntu)
parece ser/etc/nginx/snippets/
.También puede establecer los vencimientos al máximo. Aquí está la directiva que uso para css y js.
fuente
Todas las soluciones antes mencionadas negarán la posibilidad de tener diferentes alias para diferentes caminos. También en aras de tener todas las diferentes caducidades de la memoria caché en un solo lugar, debe usar nginx map de la siguiente manera.
...
Off
deshabilita el almacenamiento en caché,epoch
(para unix epoch) da como resultado que el recurso siempre se vuelva a buscar,max
establece la fecha en el valor máximo del navegador.~ Image / coincide con cualquier tipo de imagen.
Más información sobre los mapas nginx en http://nginx.org/en/docs/http/ngx_http_map_module.html .
fuente
$sent_http_content_type
es"text/css;charset=UTF-8"
la expresión anterior fallará.Si tiene un lugar que alberga todos sus archivos estáticos, algo como esto servirá ...
La respuesta aceptada hizo que nginx no encontrara ninguno de mis archivos estáticos. No estoy seguro de por qué, pero esta es una alternativa simple.
fuente
/static
carpeta (lo que haya establecido en la ubicación) al final del alias (justo después.../files
en el ejemplo).Dado que este es un hilo muy antiguo, encontré un increíble tutorial actualizado.
Quizás quieras echarle un vistazo
Cómo implementar el almacenamiento en caché del navegador con el módulo de encabezado de Nginx en Ubuntu 16.04
fuente