1. ¡OFERTA! con cupón "DIRVPS": hosting por $0,01 y también VPS Linux y Windows por $0,01 el primer mes por Interserver ← publi
    Descartar aviso
Descartar aviso
Al usar este sitio web, aceptas que nosotros y nuestros socios podamos establecer cookies para fines tales como personalizar el contenido y la publicidad. Más información.

[ Cómo configurar Mod_Deflate en RHEL/CentOS ]

Tema en 'Asuntos Técnicos' iniciado por WebTech, 2 Sep 2009.

  1. WebTech

    WebTech Súper Moderador Miembro del Staff Moderador CH

    Mod_Deflate es un módulo de Apache 2.x que nos permitirá comprimir diferentes archivos, los mismos son despachados por el servidor web e interpretados por los diferentes clientes que soportan la compresión (navegadores). Lo bueno de mod_deflate es que puede comprimir hasta un 60% o más los archivos de tu web, reduciendo así por lógica el consumo de transferencia. Lo malo es que también consumirá más CPU al realizar al compresión, pero bueno, si tu servidor puede soportarlo siempre es una buena opción.

    Si bien este tutorial aplica a RHEL 5.3, también en CentOS debería funcionar sin problemas. Apache 2.2.3 que viene con RHEL 5.3 ya trae este módulo cargado en su configuración:

    CODE, HTML o PHP Insertado:
    LoadModule deflate_module modules/mod_deflate.so
    Por lo que nos tendremos que mover hacia el final de la lista de módulos y cargar la configuración del mismo, añadiendo estas líneas en el archivo /etc/httpd/conf/httpd.conf:

    CODE, HTML o PHP Insertado:
    <IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE application/x-javascript
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE text/javascript
    AddOutputFilterByType DEFLATE text/x-js
    AddOutputFilterByType DEFLATE text/css
     
    # Highest 9 - Lowest 1
    DeflateCompressionLevel 9
     
    # Skip browsers with known problems
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    </IfModule>
    Luego de esto ya estaría todo listo, tan sólo hay que reiniciar Apache:

    CODE, HTML o PHP Insertado:
    /etc/init.d/httpd restart
    Anteriormente se definió el tipo de contenido que se comprimirá, nivel de compresión a aplicar y excepciones de la compresión para algunos navegadores que se sabe generan problemas.

    Para verificar si nuestro contenido se está despachando correctamente con la compresión de mod_deflate podemos usar esta URL: http://www.whatsmyip.org/http_compression/

    También puedes testearlo usando la herramienta para benchmarks de Apache:

    CODE, HTML o PHP Insertado:
    [root@server conf]# ab -n 1 -v 4 -H "Accept-Encoding: gzip,deflate" "http://www.misitio.com/"
    This is ApacheBench, Version 2.0.40-dev &lt;$Revision: 1.146 $&gt; apache-2.0
    Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
    Copyright 2006 The Apache Software Foundation, http://www.apache.org/
     
    Benchmarking www.misitio.com (be patient)...INFO: POST header ==
    ---
    GET / HTTP/1.0
    User-Agent: ApacheBench/2.0.40-dev
    Host: www.misitio.com
    Accept: */*
    Accept-Encoding: gzip,deflate<strong>
    </strong>
    ---
    LOG: header received:
    HTTP/1.1 200 OK
    Date: Wed, 02 Sep 2009 04:41:53 GMT
    Server: Apache
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Pragma: no-cache
    Set-Cookie: PHPSESSID=kaq3tp3pu8pmdt9eedpenpgd54; path=/
    Expires: Thu, 19 Nov 1981 08:52:00 GMT
    Vary: Accept-Encoding
    Content-Encoding: gzip
    Content-Length: 5418
    Connection: close
    Content-Type: text/html; charset=ISO-8859-1
    
    Haz las pruebas con el módulo activado y sin él y verás diferencias en los valores:
    Content-Encoding: gzip
    Content-Length: 5418


    Los logs de las consultas con sin compresión y con compresión también son bastante claros:

    CODE, HTML o PHP Insertado:
    xxx.xxx.xxx.xx - - [01/Sep/2009:23:39:46 -0500] "GET / HTTP/1.0" 200 [B]21404[/B] "-" "ApacheBench/2.0.40-dev"
    xxx.xxx.xxx.xx - - [01/Sep/2009:23:41:53 -0500] "GET / HTTP/1.0" 200 [B]5418[/B] "-" "ApacheBench/2.0.40-dev"
    
    Como ves, la reducción del peso fué de un 75% :D
     
    Última edición: 2 Sep 2009
  2.  
  3. MaxKiller

    MaxKiller Usuario activo

    Muy buen tutorial WebTech. :aprueba:

    Sólo puntualizar, para aquellos que estén alojados en un servidor compartido y tengan instalado dicho módulo (consultar con el proveedor), también pueden hacer uso de él mediante .htaccess.

    Código de ejemplo:

     


Alojamiento web, Hosting Reseller, Servidores Dedicados - All in Hosting


    
    
    
    
Blog · Sitios amigos: GuiaHosting · Unidominios · Interalta ·