Mod_deflate para optimizar velocidad web

mod_deflate es un módulo para Apache que permite comprimir los datos antes de enviarlos al navegador. Esto hace que la web esté mas optimizada a lo que velocidad se refiere. Veamos cómo configurar Mod_deflate para optimizar velocidad web.

Tutoriales programación web

Yo me voy a centrar en un servidor CentOs para poner cómo habilitarlo y configurarlo, pero en debian, ubuntu server… es lo mismo.
Últimamente Google te lo exige para darle buena nota a tu web… no digo mas.

1. Fichero httpd.conf

Debemos editar el fichero httpd.conf para habilitar y configurar el módulo. Este fichero de configuración en CentOS está en:

/etc/httpd/conf/httpd.conf

2. Editarlo

Como seguramente estaremos trabajando en una conexión remota SSH, deberemos utilizar un editor como vi o nano. Personalmente me decanto por nano. Los usuarios de Ubuntu o debian también pueden utilizar ne (nice editor) que es muy bueno.

3. Habilitat el módulo

Dentro del fichero, vamos bajando hasta encontrar las órdenes que habilitan los módulos. Hay que decir que normalmente en CentOs ya viene habilitado por defecto, pero para confirmarlo, deberemos comprobar que esté la linia:

LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so

Repito, normalmente ya te viene activado. Comprobadlo. En el caso que no esté, añadís las línias (y a malas, igual tenéis que añadir los módulos).

4. Configurando el módulo

Ahora toca configurar el módulo. Añadimos las siguientes linias, aunque puede ser que por necesidades específicas debáis añadir de nuevas:

<IfModule mod_deflate.c>
 
# Indicamos que tipos MIME vamos a comprimir
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css
 
# Indicamos nivel de compresión (El mas alto 9 - El mas bajo 1)
DeflateCompressionLevel 9
 
# Netscape 4.x tiene algunos problemas
BrowserMatch ^Mozilla/4 gzip-only-text/html
 
# Netscape 4.06-4.08 también tiene algunos problemillas
BrowserMatch ^Mozilla/4\.0[678] no-gzip
 
# MSIE Microsoft Internet Explorer
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
 
<IfModule mod_headers.c>
# Nos aseguramos que los proxies no entregan contenido erroneo
Header append Vary User-Agent env=!dont-vary
</IfModule>
 
</IfModule>

Pues ale, configurado.

5. Reiniciamos servidor

Vamos allá.

/etc/init.d/apachectl restart

6. Confirmamos que todo está OK

Con la herramienta WebSniffer comprobamos que en el header de vuelta contiene Content-Encoding gzip

Web sniffer – Leer header petición web

Espero que con este modesto artículo os sirva para informaros un poco más para saber cómo utilizar Mod_deflate para optimizar velocidad web. Es verdad que es complicado. Para cada servidor puede cambiar un poco, las versiones del mismo servidor… o las necesidades que tengáis. Pero este artículo sólo intenta que veáis un ejemplo para que lo adaptéis a lo que necesitéis.

Y si, modificar la configuración puede hacer que el servidor no funcione correctamente… Así que ojito lo que hacéis.

Si queréis ir profundizando sobre la optimización de la velocidad en la web, os recomiendo también que le echéis un vistazo a los artículos:


Más información