Apache mod_deflate · 4 min read · Sep 25, 2025
Cómo Ahorrar Tráfico Con mod_deflate de Apache2

En este tutorial, describiré cómo instalar y configurar mod_deflate en un servidor web Apache2. mod_deflate permite a Apache2 comprimir archivos y entregarlos a los clientes (por ejemplo, navegadores) que pueden manejar contenido comprimido, lo que la mayoría de los navegadores modernos pueden hacer. Con mod_deflate, puedes comprimir archivos HTML, de texto o XML a aproximadamente el 20 - 30% de sus tamaños originales, ahorrando así tráfico en el servidor y haciendo más felices a tus usuarios con módem.
La compresión de archivos causa una carga ligeramente mayor en el servidor, pero en mi experiencia, esto se compensa con el hecho de que los tiempos de conexión de los clientes a tu servidor disminuyen mucho. Por ejemplo, un usuario de módem que necesitaba siete segundos para descargar un archivo HTML sin comprimir ahora podría necesitar solo dos segundos para el mismo archivo, pero comprimido.
Al usar mod_deflate, no tienes que temer que excluyas a usuarios con navegadores más antiguos que no pueden manejar contenido comprimido. El navegador negocia con el servidor antes de que se transfiera cualquier archivo, y si el navegador no puede manejar contenido comprimido, el servidor entrega los archivos sin comprimir.
mod_deflate ha reemplazado a mod_gzip de Apache 1.3 en Apache2. Si deseas servir archivos comprimidos con Apache 1.3, echa un vistazo a este tutorial: mod_gzip - sirviendo contenido comprimido por el servidor web Apache.
Quiero decir primero que esta no es la única forma de configurar un sistema así. Hay muchas maneras de lograr este objetivo, pero esta es la forma que elijo. ¡No doy ninguna garantía de que esto funcione para ti!
1 Habilitar mod_deflate
Si tienes Apache2 instalado, mod_deflate también debería estar ya instalado en tu sistema. Ahora tenemos que habilitarlo. En Debian, podemos hacerlo así:
a2enmod deflateLuego reinicia Apache2:
service apache2 restartEn otras distribuciones, es posible que debas editar la configuración de Apache2 manualmente para habilitar mod_deflate. Es posible que debas agregar una línea como esta a la sección LoadModule:
LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.soAsegúrate de ajustar la ruta a mod_deflate.so y reinicia Apache2 después.
2 Configurar mod_deflate
La compresión de archivos se puede configurar de una de dos maneras: ya sea exclusión explícita de archivos por extensión o inclusión explícita de archivos por tipo MIME. Puedes habilitar mod_deflate para todo tu servidor Apache2 o solo para sitios virtuales específicos. Dependiendo de esto, abre ahora la sección de configuración del servidor global de tu Apache2 o solo la sección de configuración de vhost donde deseas habilitar mod_deflate.
2.1 Inclusión Explícita De Archivos Por Tipo MIME
Si deseas comprimir solo archivos HTML, de texto y XML, agrega esta línea a tu configuración:
AddOutputFilterByType DEFLATE text/html text/plain text/xmlEsta es la configuración que estoy usando porque no quiero comprimir imágenes o archivos PDF o archivos que ya están comprimidos, como archivos zip.
2.2 Exclusión Explícita De Archivos Por Extensión
Si deseas comprimir todos los tipos de archivos y excluir solo unos pocos, agregarías algo como esto a tu configuración (en lugar de la línea de la sección 2.1):
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \\.(?:gif|jpe?g|png)$ \\
no-gzip dont-vary
SetEnvIfNoCase Request_URI \\
\\.(?:exe|t?gz|zip|bz2|sit|rar)$ \\
no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-varyEsto comprimiría todos los archivos excepto imágenes (gif, jpg y png), archivos que ya están comprimidos (como zip y tar.gz) y archivos PDF, lo cual tiene sentido porque no se gana mucho al comprimir estos tipos de archivos.
2.3 Otras Directivas de Configuración
Independientemente de si usas la configuración de la sección 2.1 o 2.2, deberías agregar estas líneas a tu configuración:
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/htmlEstas líneas son para algunos navegadores más antiguos que no soportan la compresión de archivos que no sean documentos HTML.
La configuración ya está terminada, y ahora debes reiniciar Apache2. En Debian, lo haces así:
service apache2 restartPara aprender sobre más directivas de configuración, echa un vistazo al Módulo de Apache mod_deflate.
3 Pruebas
Para probar nuestra compresión, agregamos algunas directivas a nuestra configuración de mod_deflate que registran la relación de compresión de los archivos entregados. Abre tu configuración de mod_deflate y agrega las siguientes líneas:
DeflateFilterNote Input input_info
DeflateFilterNote Output output_info
DeflateFilterNote Ratio ratio_info
LogFormat '"%r" %{output_info}n/%{input_info}n (%{ratio_info}n%%)' deflate
CustomLog /var/log/apache2/deflate_log deflateAsegúrate de reemplazar /var/log/apache2 con el directorio de registros de tu Apache2. Esto podría ser /var/log/httpd, /var/log/httpd2, etc.
Luego reinicia Apache2. En Debian, hazlo así:
service apache2 restartAhora, cada vez que se solicite un archivo, esto se registrará en /var/log/apache2/deflate_log (o en el archivo que cambiaste). Una línea de registro típica se ve así:
"GET /info.php HTTP/1.1" 7621/45430 (16%)Ves que se solicitó y entregó el archivo info.php. Su tamaño original era de 45430 bytes, y se comprimió a 7621 bytes o el 16% de su tamaño original. ¡Este es un gran resultado, y si tu sitio web consiste principalmente en archivos HTML, de texto y XML, mod_deflate te ahorrará mucho tráfico, y para los usuarios con una conexión de baja velocidad, tu sitio cargará mucho más rápido.
Si ya no necesitas el registro después de tus pruebas, puedes deshacer los cambios de la sección 3 y reiniciar Apache2.
4 Enlaces
- Módulo de Apache mod_deflate: http://httpd.apache.org/docs/2.0/mod/mod_deflate.html
- mod_gzip - sirviendo contenido comprimido por el servidor web Apache: https://www.howtoforge.com/linux_apache_mod_gzip
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.