Eventos ASP ASP.net UML SQL Server IIS Seguridad
INICIO
Noticias
Descargas
Enlaces
Articulos
Foros
Libros
Blog
Acerca de
01/09/2005
Comprimir archivos HTTP en IIS 6.0

Seguramente muchos de los administradores de sistemas han deseado aumentar el ancho de banda disponible en el servidor por diversos motivos en horas de mayor utilización de los servidores web sin tener que destinar mas recursos siempre que se cuente con un buen procesador que no sufre cuellos de botella después de haberlo comprobado con los contadores de rendimiento.

Pues bien IIS 6.0 usa una tecnica de compresión mejorada basada en el estándar gzip que muchos desconocen para comprimir los archivos que se envían en las conexiones http por el puerto 80 siempre que el navegador sea compatible con dicho estándar, lo cual verificará en el encabezado http.

Es recomendable usarlo en archivos estáticos como paginas html, htm, imágenes y hace uso de una caché de archivos comprimidos para las próximas veces que se vaya a solicitar el mismo archivo no tener que volver a enviar comprimido.El navegador ya se encargará de descomprimir el fichero cuando llegue a su destino.

Agregar la extensión de servicio web

Seleccionamos "Agregar una nueva extensión de servicio Web…", allí se desplegará la siguiente pantalla, en la cual tendremos que colocar el nombre que deseemos, en este caso es "Compresión", después deberemos agregar los archivos necesarios, para ello presionamos "Agregar", y buscamos el archivo gzip.dll, que se encuentra generalmente en "%windir%\SYSTEM32\inetsrv\gzip.dll", por último establecemos el estado de la extensión a Permitido y aceptamos los cambios. Luego de ello deberíamos tener establecido el filtro ISAPI correspondiente para realizar la compresión de los archivos de nuestro sitio.

Habilitar la compresión estática en el sitio web

El paso siguiente es habilitar la compresión, para hacerlo buscamos la carpeta Sitios Web y hacemos clic con el botón derecho sobre él, en el menú contextual seleccionamos Propiedades, inmediatamente se desplegará la pantalla de Propiedades, allí elegimos la ficha Servicios, como se ve en la imagen. Aquí tendremos que seleccionar las casillas "Comprimir archivos de aplicación" y "Comprimir archivos estáticos", con este último también se mostrará la ubicación de los archivos comprimidos, la cual podremos cambiar de ser necesario; asimismo, se habilita la opción de limitar el tamaño que pueden ocupar los archivos estáticos comprimidos como se ve en la imagen.


Modificar la metabase

La metabase es un archivo XML que es utilizado por IIS 6 para almacenar la mayoría de la información de configuración, la ventaja que tiene esta versión en comparación con las anteriores es que se puede leer y editar directamente con un editor de texto estándar.Antes de editarla debemos parar el servicio Web.

Los archivos de la metabase los podemos encontrar en "%windir%\SYSTEM32\inetsrv\"
Para realizar la configuración dentro de la metabase tenemos que saber a dónde nos dirigimos, la entrada que nos interesa es:
<IIsCompressionScheme Location="/LM/W3SVC/Filters/Compression/gzip">

Si abrimos Metabase.xml con el Bloc de notas, veremos:

" HcDoDynamicCompression="TRUE"
, cuando está configurada en True significa que está habilitada la compresión de archivos dinámicos. Una propiedad similar es: DoDynamicCompression, sirve para aplicar compresión dinámica a directorios y archivos particulares.

" HcDoOnDemandCompression="TRUE"
, cuando está configurada en True significa que si está habilitada la compresión de archivos estáticos, se enviará al cliente una versión comprimida del archivo, independientemente de si el archivo se encontró o no en el directorio de archivos comprimidos.

" HcDynamicCompressionLevel="9", establece el nivel de compresión de los archivos dinámicos; números altos significan mayores niveles de compresión, pero también implican mayor uso de CPU y de memoria (0-10).

" HcFileExtensions="htm html txt"


Aquí debemos colocar las extensiones de archivos estáticos, por ejemplo: htm, html, txt, doc, pdf, etc. que serán comprimidas si está habilitada la compresión estática.

" HcOnDemandCompLevel="9"
, establece el nivel de compresión de los archivos estáticos cuando la compresión en demanda está activada, números altos significan mayores niveles de compresión, pero también implican mayor uso de CPU y de memoria (0-10).
Algunas de las propiedades que aparecen aquí también pueden ser modificadas desde la consola de administración:

" HcCompressionDirectory="%windir%\IIS Temporary Compressed Files", indica el directorio en donde serán guardados los archivos temporales comprimidos.

" HcDoDiskSpaceLimiting="FALSE"
, cuando está en False no limita el espacio de los archivos temporales comprimidos.

" HcExpiresHeader="Wed, 01 Jan 1991 12:00:00 GMT", se coloca una fecha obsoleta para que los proxys no guarden en caché el archivo.

" HcMaxDiskSpaceUsage="99614720"
, tamaño máximo en bytes que pueden ocupar las copias comprimidas de los archivos estáticos.

Una vez hechas las modificaciones en el archivo Metabase.xml , guardamos los cambios, e iniciamos los servicios del IIS 6.

En este punto la compresión debería estar funcionando correctamente, lo cual se puede comprobar en paginas web como http://www.turboiis.com

Podeis encontrar mas informacion aqui y contactar conmigo para cualquier duda.

Sergio Vazquez
Murcia- Spain
Microsoft MCP
http://www.mutisdotnet.com

 
 

Desarrollado por SVM 2001 webmaster@mutisdotnet.com
Optimizado resolucion de 800X600
Open and Share your Mind Reusing .Net Components