Facebook Twitter Google Digg Reddit Email Imprimir
Martes 16 de octubre de 2018
Santoral:
Eduvigis
Otros:
Día Mundial de la Alimentación
Día del Profesor
Semana:
42
Día año:
289/365 (79%)
U.F.:
27389.73
IPC:
0,3
Dolar:
683,7
Euro:
791,5
Bitcoin:
U$ 6447.3769322344
mindicador.cl
Time4VPS.EU - VPS hosting in Europe

Compresión dinámica en Apache

Mejore los tiempos de carga en equipos móviles

Introducción

En algunas ocaciones puede ser favorable el comprimir la salida de nuestra página web, a pesar del consumo de CPU, se benefician principalmente los usuarios que acceden desde celulares por medio de redes 3G (o incluso 2G), considerando además que sus planes de datos generalmente tienen un límite de bytes a transferir, por lo que cualquier ayuda será bienvenida.

Apache nos permite realizar la compresión de manera dinámica, dependiendo de las capacidades del browser utilizado, logrando reducir los datos transferidos del órden de 50% hasta 80%.

Configuración

Al momento de instalar Apache en CentOS (yum install httpd), se incluye el módulo mod_deflate encargado de realizar la compresión, lo que resta, es indicarle que tipo de archivos deberán ser comprimidos, siendo de utilidad para los archivos "texto" como: "HTML" (estáticos o dinámicos con PHP), "JavaScript" y estilos "CSS". Se habilita desde la directiva <Directory> de la configuración de nuestro sitio web o desde el archivo .htacces en la raiz del sitio, con las instrucciones:

<IfModule mod_deflate.c>
    <filesMatch "\.(js|css|html|php)$">
        SetOutputFilter DEFLATE
    </filesMatch>
</IfModule>

Con ello indicamos a Apache que los archivos ".js", ".css", ".html" y ".php" sean procesados en la salida por el filtro DEFLATE, encargado de realizar la compresión. Para un caso práctico, con una hoja de estilo:

curl http://www.wyzer.cl/css/base.css --silent --write-out "Bytes=%{size_download}\n" --output /dev/null Bytes=13163 curl http://www.wyzer.cl/css/base.css -H "Accept-Encoding: gzip,deflate" --silent --write-out "Bytes=%{size_download}\n" --output /dev/null Bytes=3042

Lo que significa un ahorro del 77% de los bytes transmitidos. Y veamos el caso de la página de inicio de www.publimetro.cl:

curl http://www.publimetro.cl --silent --write-out "Bytes=%{size_download}\n" --output /dev/null Bytes=378553 curl http://www.publimetro.cl -H "Accept-Encoding: gzip,deflate" --silent --write-out "Bytes=%{size_download}\n" --output /dev/null Bytes=61643

Para éste caso, la compresión es mucho más favorable, con solo 16,2% de los datos transmitidos

Escrito por: Luis Hernán de la Barra, 03/10/2014

Generado por Sistema y almacenado en cache

Wyzer
Luis Hernán de la Barra
E-Mail:ldelabar@wyzer.cl
Web:www.wyzer.cl