Volver a la página principal
miércoles 13 noviembre 2024
8

Cómo habilitar y configurar mod_expires en Apache para gestionar la caché de contenido

El módulo mod_expires en Apache permite configurar encabezados de expiración HTTP, que indican al navegador cuánto tiempo debe almacenar en caché el contenido de un sitio antes de volver a solicitarlo al servidor. Esto ayuda a reducir la carga del servidor y a mejorar la velocidad de carga de las páginas, ya que los recursos estáticos (como imágenes, CSS y JavaScript) se sirven desde la caché del navegador en lugar de realizar nuevas solicitudes.

¿Qué es mod_expires?

mod_expires es un módulo de Apache que permite definir políticas de caché para varios tipos de contenido. Funciona mediante el envío de encabezados Expires y Cache-Control a los navegadores, indicando por cuánto tiempo un recurso debe considerarse válido sin necesidad de volver a solicitarlo al servidor.

Instalación y activación de mod_expires en Apache

mod_expires suele venir instalado por defecto en Apache, pero en caso de que no esté activado, puedes habilitarlo siguiendo estos pasos:

1. Verificar si mod_expires está activado:

apachectl -M | grep expires

Si expires_module no aparece en la lista, debes activarlo.

2. Activar mod_expires:

sudo a2enmod expires

3. Reiniciar Apache para aplicar los cambios:

sudo systemctl restart apache2

Configuración de mod_expires

Puedes configurar mod_expires en el archivo de configuración del sitio (por ejemplo, /etc/apache2/sites-available/000-default.conf) o en un archivo .htaccess. La configuración permite establecer tiempos de expiración personalizados para diferentes tipos de archivos (por extensión o tipo MIME).

Ejemplo de configuración básica de mod_expires

Aquí tienes un ejemplo de configuración para controlar la expiración de diferentes tipos de archivos:

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 1 month"
    
    # Imágenes - Expiran después de 1 año
    ExpiresByType image/jpg "access plus 1 year"
    ExpiresByType image/jpeg "access plus 1 year"
    ExpiresByType image/png "access plus 1 year"
    ExpiresByType image/gif "access plus 1 year"
    
    # CSS y JavaScript - Expiran después de 1 semana
    ExpiresByType text/css "access plus 1 week"
    ExpiresByType application/javascript "access plus 1 week"
    
    # Archivos HTML - Expiran después de 2 días
    ExpiresByType text/html "access plus 2 days"
</IfModule>

Explicación de la configuración

  • ExpiresActive On: Activa el módulo mod_expires para el contexto actual (directorio o sitio).
  • ExpiresDefault: Define el tiempo de expiración predeterminado para todos los tipos de contenido que no tengan un tiempo de expiración específico.
  • ExpiresByType: Especifica el tiempo de expiración para tipos MIME específicos (por ejemplo, imágenes, CSS, JavaScript).

Cada línea de ExpiresByType indica al navegador que puede mantener estos recursos en su caché durante el tiempo especificado (en este ejemplo, 1 year para imágenes, 1 week para CSS y JavaScript, y 2 days para HTML).

Ejemplo de configuración de caché en un archivo .htaccess

Puedes configurar mod_expires en un archivo .htaccess para establecer reglas de caché en un directorio específico. Simplemente añade la configuración deseada al archivo .htaccess:

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresByType image/webp "access plus 1 year"
    ExpiresByType font/woff2 "access plus 6 months"
    ExpiresByType text/html "modification plus 1 hour"
</IfModule>
  • access plus: El tiempo de expiración se calcula a partir del momento en que se accede al archivo.
  • modification plus: El tiempo de expiración se calcula a partir de la última modificación del archivo.

Consideraciones de rendimiento

Configurar la expiración de contenido estático ayuda a mejorar el rendimiento, ya que reduce la cantidad de solicitudes HTTP y disminuye el tiempo de carga de las páginas. Sin embargo, es importante elegir tiempos de expiración adecuados para cada tipo de recurso. Por ejemplo, los recursos que cambian frecuentemente (como HTML) deben tener un tiempo de expiración más corto que los recursos estáticos (como imágenes).

Referencias adicionales

Para más detalles sobre las opciones de configuración de mod_expires, consulta la documentación oficial de Apache sobre mod_expires.

Etiquetas:
apache
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer