Crear usuario · Acceder

Optimizar es un arte, Parte I: compresión Gzip, incluyendo CSS y javascript

Este es el primer artículo de una serie de métodos que he conseguido implementar con éxito ahorrando CPU y transferencia, haciendo que mis servicios web soporten más lectores online, sirviendo más rápido y con menos hardware.

Parte I: Compresión Gzip

Este método ya es bastante familiar, casi todo el mundo que lo necesita realmente lo utiliza, pero no lo aprovecha al máximo.

La compresión Gzip hace que el servidor comprime los archivos de texto antes de transferirlos, reduciendo su tamaño entre 5 y 9 veces el original. Como por arte de magia consigue que la información que envía el servidor hacia el cliente sea notablemente menor.

Por ejemplo, un archivo que pesa 68 Kb gzipeado se queda en 9 Kb ahorrando mas de 7 veces el tamaño

Conseguimos de un plumazo tres enormes ventajas:

  1. Mayor capacidad de carga: ahorrando tiempo en transferir archivos se minimiza la carga de CPU y RAM del servidor.
  2. Mejor velocidad de carga: al transferir menos información las paginas cargarán bastante más rápido, la experiencia de tus usuarios será mejor y evade la necesidad de que el server esté en el país objetivo.
  3. Considerable ahorro de dinero: el gasto elemental de un servidor web es la transferencia mensual, esta se mide en Gb/mes. Comprimiendo con Gzip el ahorro será tremendo.

[Curiosidad: existe una supuesta delgada linea de eficiencia, algunos dicen que activando Gzip on-the-flight se gasta más CPU que en modo normal. Por mi experiencia pienso que se ahorra CPU, sin embargo en la Parte II explicaré un método muy interesante para hace Gzip estáticamente (mas magia)]


Puede parecer trivial, ya que mucha gente lo conoce y lo aplica. Sin embargo mi truco "avanzado" es que recomiendo activar Gzip en TODOS los archivos planos y no solo a las páginas HTML como veo en la mayoría de webs. Cualquier archivo plano se debe gzipear, me refiero especialmente a archivos html, estilos css y archivos javascript. El ahorro triple será más significativo aún.

Distintos métodos para implementar Gzip:

  • Con Wordpress: es fácil, Opciones > Lectura > Marcar opción Gzip (abajo). Sin embargo el error común es olvidarse aquí del tema, un error porque con esta opción solo consigues comprimir las páginas html olvidandote del archivo css y posibles javascripts.
  • Con PHP: para comprimir una página html donde puedes ejecutar PHP has de añadir estas lineas de código al principio de cualquier proceso:
     
    Al final de cualquier código:
  • Para CSS y javascript (recomendado) En .htaccess
    AddHandler application/x-httpd-php .css .js
    php_value auto_prepend_file /home/... RUTA LOCAL .../public_html/gzip-start.php
    php_value auto_append_file /home/... RUTA LOCAL .../public_html/gzip-end.php
    En gzip-start.php
    En gzip-end.php
  • Combinando htaccess + PHP: poner en .htaccess:
    php_flag zlib.output_compression on

    #Con el numero se controla el nivel de compresion donde 0 es null y 9 el maximo php_value
    zlib.output_compression_level 5
    AddHandler application/x-httpd-php .css .js

    #Poner una ruta local cualquiera hacia un archivo php
    php_value auto_prepend_file /home/.../public_html/gzip-head.php
    Crear el archivo gzip-head.php con el siguiente contenido

Y esto es todo...

En la Parte II explico un interesantísimo metodo para comprimir con Gzip estáticamente, en vez de on-the-flight gastando 0 CPU en comprimir cada pagina, completando el circulo de eficiencia perfecta.

3
+2 GONZO 23-12-2007
Categoría: Conocimientos Recomendaciones Descubrimientos Internet

Artículos relacionados:

  1. Optimizar es un arte, Parte II: pre-Gzip estático, evitando compresión on-the-flight
  2. optimizar
  3. Gráfico del consumo de transferencia con o sin compresión Gzip
  4. Trucos y consejos para optimizar tu conexión de Internet ADSL
  5. Herramientas para optimizar y analizar el servidor de hosting en el que alojas tu página
  6. Exposición de arte manga en el Guggenheim de Bilbao
  1. +0 Dondado 2007-12-23 15:13:49

    Lo miraré, pero tengo que ver cómo encaja esto con el WP-Cache que es incompatible con el gzip del Wordpress

  2. +1 GONZO 2007-12-23 16:56:39

    #1 Dondado,

    En calentón escribí la Parte II que tenia en la cabeza. Precísamente trata justo del problema que has planteado y es la solución perfecta como podrás leer aquí:

    http://gonzo.teoriza.com/2007/12/23/optimizar-es-un-arte-parte-ii-pre-gzip-estatico-evitando-compresion-on-the-flight/

    He notificado al creador de WP-Cache, si no lo implementa en los próximos días haré una versión a parte con esta ventaja.

    Un saludo,

  3. +0 nick 2009-05-29 18:16:55

    Hola, no consigo configurar la compresion gzip en mi servidor, por favor necesito ayuda.

Artículo escrito por GONZO para Blogs Teoriza.
Optimizar es un arte, Parte I: compresión Gzip, incluyendo CSS y javascript, comprimir php compression gonzoteorizacom http