Habilitar compresión gzip en IIS 6
En la entrada anterior veíamos como habilitar la compresión gzip de salida de HTTP con Apache, en esta entrada explicaré de manera resumida realizar la misma acción pero para IIS 6.
1. el primer paso para habilitar la compresión es agregar una «Extensión de servicio«. Para ello locarizaremos en el administrador de IIS la carpeta «Extensiones de servicio web» y haremos click sobre «Nueva extensión«.
2. en la ventana de «Nueva extensión de servicio web» le pondremos un nombre, como «gzip» o «compresión» y agregaremos la librería gzip.dll ubicada en c:\Windows\System32\inetsrv\gzip.dll
Es importante seleccionar el check «Establecer el estado de extensión a Permitido«.
3. Una vez agregada la extensión, solo tenemos que ir a nuestros «Sitios Web» y en sus propiedades de Servicio habilitar «Comprimir archivos de aplicación» y «Comprimir archivos estáticos»
4. Para finalizar la configuración de la compresión tendremos que modificar el fichero «Metabase.xml«, antes deberemos haberle habilitado su modificación (bloqueado por defecto por IIS). Para ello iremos a «Admnistración de Internet Information Server» > Propiedades y «Habilitar la modificación directa de archivos de metabase»
Ahora ya podemos editar el fichero “Metabase.xml”, normalmente ubicado en «%windir%\SYSTEM32\inetsrv\».
Del fichero en cuestión lo que nos interesa para la compresión http es la sección de“<;IIsCompressionScheme Location=»/LM/W3SVC/Filters/Compression/gzip»>;”. Podemos abrir el fichero con el bloc de notas.
» HcDoDynamicCompression=»TRUE», La compresión esta habilitada para ficheros dinamicos.
» HcDoOnDemandCompression=»TRUE», la compresión esta habilitada para ficheros estaticos
» HcDynamicCompressionLevel=»10″, 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), pero es evaluar como nuestro servidor funciona mejor.
» HcFileExtensions=»htm html txt»
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.
HcScriptFileExtensions=»asp
dll
exe
aspx
htm»
Extensiones de archivos dinámicos. En mi caso tengo puesto como dinámico el htm ya que mi servidor utiliza rewrite y por ello considero que una htm es una pagina dinámica.
» HcOnDemandCompLevel=»10″, 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.
Después de toda esta configuración lo único que nos quedara será reiniciar el IIS 6.0
Para reiniciarlo por consola de comandos (cmd) Inicio, ejecutar, cmd: iisrestart
Si tienes IIS 7 consulta el siguiente enlace (no creo que varie mucho de la versión 6): http://technet.microsoft.com/en-us/library/cc771003(v=WS.10).aspx