Apache mod_expire. Expiración de contenidos web

Otra funcionalidad de apache. Se trata de mod_expire. Con mod_expire, podemos expresar el tiempo de expiración de un tipo de archivo (css,gif,png…etc). De esta manera, avisamos al navegador que ese contenido no va a cambiar en un determinado tiempo y no hace falta que lo vuelva a descargar.

En las instalaciones típicas de Apache 2.0.X el mod_expire, al igual que una legión de modulos, ya viene compilado y cargado en la configuración por defecto. Si tenemos dudas de si está o no, lo podemos comprobar con la extensión de Mozilla Firebug, YSlow. Utilizando esta extensión vemos la fecha de expiración de un archivo en concreto.

Primero, compilamos el modulo sino lo tenemos por defecto, utilizando apxs. Si no tenemos este binario, podemos instalarlo con

# yum install httpd-devel

Necesitamos el fichero .c del mod_expires, lo podemos bajar o copiar del paquete de httpd. Una vez lo tengamos todo, ejecutamos:

# /usr/local/apache/bin/apxs -i -a -c
/root/httpd-2.2.6/modules/metadata/mod_expires.c

Se deja el módulo en la ubicación por defecto

# /usr/local/modules/mod_expires.so

Comprobamos en el fichero de configuración de apache, que se ha cargado la línea de configuración adecuada:

# LoadModule expires_module modules/mod_expires.so

Salvamos los cambios y reiniciamos apache

# /etc/init.d/httpd restart

Podemos utilizar mod_expires en diferentes contextos, pero seguiremos el ejemplo encontrado en Yukei.net, por comodidad, más que nada. Nos referimos a utilizar htaccess, con lo cual, explícitamente necesitamos mod_rewrite.

Vamos al directorio donde tenemos el contenido que queremos controlar por expiración y creamos el htaccess

# touch .htaccess

#joe .htaccess

Añadimos

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 year"
</IfModule>

o bien

Añadimos esto en el fichero httpd.conf de nuestro apache


ExpiresActive On
ExpiresDefault "access plus 1 month"

Reiniciamos apache again

# /etc/init.d/httpd restart

Ahora, es cuando debemos comprobar con Yslow que nuestro contenido expira en el tiempo que nosotros hemosindicado. Para mod_expire hay dos directivas, ExpireDefault y ExpireByType. Son muy similares

ExpireDefault

ExpiresDefault "access plus 1 month"
ExpiresDefault "access plus 4 weeks"
ExpiresDefault "access plus 30 days"

ExpireByType

ExpiresByType text/html "access plus 1 month 15 days 2 hours"
ExpiresByType image/gif "modification plus 5 hours 3 minutes"

Links:

http://www.yukei.net

http://mapopa.blogspot.com

http://httpd.apache.org/docs/2.0/mod/mod_expires.html

¿Te ha ayudado este artículo?

Invítame a un café

Un comentario de “Apache mod_expire. Expiración de contenidos web

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Rubenortiz.es
Información sobre privacidad

Este sitio web utiliza cookies para ofrecerte la mejor experiencia de usuario posible. La información sobre cookies se almacena en tu navegador y realiza funciones como reconocerte cuando vuelve a nuestro sitio web y ayudarme a comprender qué secciones de la web resultan más interesantes y útiles.