Una vista rapida a ngx_http_headers_module
Escrito el 2022-10-08 por Alberto Ferrer
Tiempo de lectura: 2 minuto(s)
Etiquetas:
nginx
cache
expires
El modulo de ngx_http_headers_module nos permite agregar la cabecera de Expires y Cache-Control y otros campos arbitrarios a una cabecera de respuesta.
Para controlar las hojas de estilo, JavaScript, images y otros utilizo el siguiente código:
# Expires map
map $sent_http_content_type $expires {
default off;
text/css 30d;
application/javascript 30d;
application/font-woff 30d;
application/font-woff2 30d;
application/font-ttf 30d;
font/opentype 30d;
image/apng 30d;
image/avif 30d;
image/gif 30d;
image/jpeg 30d;
image/png 30d;
image/svg+xml 30d;
image/webp 30d;
}
Por defecto, como podrán leer en el código expuesto, se declara default con un valor off. Luego de esto listamos los MIME types y declaramos el tiempo que deseamos conservar los mencionados hasta que expiran.
Para hacer uso del bloque de código, agregamos lo siguiente en el apartado server , ejemplo:
# Expires map
map $sent_http_content_type $expires {
default off;
text/css 30d;
application/javascript 30d;
application/font-woff 30d;
application/font-woff2 30d;
application/font-ttf 30d;
font/opentype 30d;
image/apng 30d;
image/avif 30d;
image/gif 30d;
image/jpeg 30d;
image/png 30d;
image/svg+xml 30d;
image/webp 30d;
}
server {
...
expires $expires;
...
}
Ahora probamos nuestra configuración con cURL:
[alberto@barrahome ~]$ curl -I https://www.barrahome.org/bl-themes/tagg/vendors/tagg/main.css 2>&1 /dev/null|grep expires
expires: Tue, 08 Nov 2022 02:55:50 GMT
[alberto@barrahome ~]$
Nota: Se puede utilizar expires $expires; dentro de valores location y cambiar los tiempos a gusto, dependiendo de lo que busquemos hacer.