Requisitos
- ubuntu 14.04
- docker
- cliente svn
Instalación
Código fuente
Crear el directorio de trabajoDescargar el codigo fuente$ mkdir -p $HOME/razzek/lab/httpd-gzip
$ cd $HOME/razzek/lab/httpd-gzip $ svn co https://svn.riouxsvn.com/razzeklabs/trunk/httpd_compress/ .
Configuración
Ejecutar los scripts$ cd $HOME/razzek/lab/httpd-gzip $ ./00-config.sh && ./01-content.sh && ./02-run.sh
Validación
Para validar la correcta instalación, ejecutamos el scriptCuya salida, genera un renglon como este:$ ./check-compressed-jquery.sh
Al listar el contenido del directorio js:Content-Length: 95957
Se observa que existen el archivo (y no el archivo jquery-1.11.3.js, que es el que se requirió)$ ls -l $HOME/razzek/lab/httpd-gzip/js
Dicho archivo, coincide en tamaño (y contenido) con el archivo recibido por el script. A continuación, se generan los equivalentes comprimidos.jquery-1.11.3.js.min
Posteriormente se ejecuta el script, para recuperar el archivo nuevamente$ ./03-compress.sh
Esta consulta genera un renglon como el siguiente$ ./check-compressed-jquery.sh
Que es menor que en la primer consulta. Al consultar nuevamente el directorio js, se puede observar que existe un archivo jquery-1.11.3.js.min.gz, el cual coincide en tamaño con esta consultaContent-Length: 33139
Como funciona
Suponiendo que se solicita el archivo script.js, el servidor, al recibir la petición, valida que el cliente, acepte compresión (Accept-encoding: gzip) y en base a la existencia de alguno archivo determina qué contenido envia.Estas reglas se encuentran definidas en el archivo
Para agregar un nuevo archivo, se requiere agregar a la carpeta js, se siguen los siguientes pasos:https://svn.riouxsvn.com/razzeklabs/trunk/httpd_compress/compress.conf
- Obtener el archivo original (file.js en este ejemplo)
- Opcionalmente, minimizar el archivo (YUI Compressor o Refresh-JS por ejemplo) y renombrarlo como file.js.min
- Comprimir con gzip (zopfli puede ser una alternativa), si se tiene el archivo minimizado se comprime solo el minimizado en caso contrario, el original.
- Agregar a la carpeta js el archivo original o minimizado y su contraparte comprimida (file.js - file.js.gz o file.js.min - file.js.min.gz)
Ventajas y desventajas
Al enviarse archivos previamente minimizados y/o comprimidos se obtienen las siguientes ventajas
- Menor uso de CPU, al no requerirse comprimir en cada petición
- Menor ancho de banda, al enviarse el archivo minimizado y comprimido.
Y desventajas
- Mayor uso de disco duro
- Administrar al menos el doble de archivos
- Manejo de actualizaciones manual (para actualizar un archivo, es necesario borrar los generados)
Necesidad de
No hay comentarios.:
Publicar un comentario