Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
por Yanbing Shi
Este artículo es una introducción a la compresión de IIS.
Qué es la compresión de IIS
La compresión de IIS es un conjunto de dos proveedores de esquemas de compresión de IIS, iisbrotli.dll y iiszlib.dll, que expanden la capacidad de IIS para comprimir las respuestas HTTP. iisbrotli.dll admite la compresión Brotli, mientras que iiszlib.dll admite Gzip y la compresión Deflate.
Qué es un proveedor de esquemas de compresión
Un proveedor de esquemas de compresión de IIS:
- Es una extensión conectable de IIS
StaticCompressionModule
yDynamicCompressionModule
. - Proporciona una implementación para uno o varios esquemas de compresión HTTP.
IIS StaticCompressionModule
y DynamicCompressionModule
:
- Cargan los proveedores de esquemas de compresión registrados en procesos de trabajo en tiempo de ejecución.
- Se aprovechan para realizar compresión en archivos estáticos y contenido generado de forma dinámica, respectivamente.
Por qué usar la compresión de IIS
IIS incluye un proveedor de esquema de compresión predeterminado gzip.dll:
- Admite la compresión Gzip y Deflate.
- Se registra como esquema gzip en applicationHost.config de forma predeterminada.
La gzip.dll integrada se basa en una implementación interna de la codificación Gzip y Deflate, y funciona correctamente. ¿Por qué introducir nuevos proveedores de esquemas de compresión en la compresión de IIS?
Mayor razón de compresión con compresión Brotli
Compresión Brotli:
- Es un añadido relativamente nuevo a la compresión HTTP.
- El algoritmo de codificación y el formato de Brotli se especifican en especificación 7932 de solicitudes de comentario (RFC).
- Los flujos de datos de respuesta comprimidos con Brotli tienen el tipo de codificación de contenido "br".
- Es capaz de ofrecer una razón de compresión mayor que Gzip y Deflate, a cambio de una menor velocidad de compresión.
La descompresión de Brotli en el lado cliente (explorador) es generalmente más rápida. Habilitar la compresión brotli puede mejorar potencialmente el rendimiento, especialmente para servir contenido estático.
Mejor proveedor de esquemas de compresión Gzip
Aunque iiszlib.dll incluido en la compresión de IIS ofrece la misma compresión Gzip y Deflate que el proveedor predeterminado gzip.dll, iiszlib.dll:
- está más actualizado.
- Tiene un mejor rendimiento en términos de uso de CPU.
- Tiene una mejor compatibilidad con la compresión dinámica gracias a la biblioteca zlib.
Código abierto
IIS Compression
:
- Es un producto de código abierto compatible.
- El código fuente se puede encontrar en el repositorio de Github IIS.Compresión.
- Usa las bibliotecas de compresión brotli y zlib de código abierto como codificadores principales
- Conecta las bibliotecas
brotli
yzlib
con módulos de compresión de IIS mediante la implementación de API de compresión HTTP de IIS.
Hacer que IIS Compression
sea código abierto proporciona transparencia a la comunidad y permite mejoras futuras flexibles y ágiles, corrección de errores y personalización. El proyecto también sirve una referencia general para desarrollar un proveedor de esquemas de compresión IIS a la comunidad.
Instalar la compresión de IIS
Antes de la instalación
Los proveedores de esquemas de compresión iiszlib.dll y iisbrotli.dll no son módulos IIS, son extensiones de IIS StaticCompressionModule
y DynamicCompressionModule
. En tiempo de ejecución, StaticCompressionModule
y DynamicCompressionModule
carga los proveedores de esquemas de compresión y pasar los datos de contenido de respuesta a ellos para la compresión.
Por lo tanto, uno o ambos módulos de compresión deben instalarse en el servidor IIS como requisito previo. Consulte Compresión HTTP sobre cómo instalar las funciones. Una vez instalados los módulos, asegúrese de que la compresión estática o dinámica esté habilitada para un espacio de nombres de dirección URL deseado. Consulte Compresión de direcciones URL sobre cómo habilitar el tipo de compresión correspondiente.
Instalación
Descargue la versión de Microsoft IIS Compression desde las siguientes ubicaciones:
Abra un símbolo del sistema con derechos de usuario de administrador.
Detenga los servicios de WAS y W3SVC introduciendo lo siguiente:
net stop was /y
Ejecute iiscompression_<architecture>.exe; por ejemplo:
msiexec /I iiscompression_x86.msi
msiexec /I iiscompression_amd64.msi
Acepte el contrato de licencia de usuario final (CLUF).
Finalice la instalación.
Arranque los servicios de WAS y W3SVC introduciendo lo siguiente:
net start w3svc
El instalador de compresión de IIS coloca iisbrotli.dll y iiszlib.dll en %ProgramFiles%\IIS\IIS Compression
.
El instalador registra iisbrotli.dll como proveedor de esquemas de compresión de br (Brotli) en applicationHost.config. También reemplaza el proveedor de esquemas de compresión de gzip predeterminado gzip.dll por iiszlib.dll. A continuación se muestra un elemento <httpCompression>
de ejemplo en applicationHost.config:
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="br" dll="%ProgramFiles%\IIS\IIS Compression\iisbrotli.dll" />
<scheme name="gzip" dll="%ProgramFiles%\IIS\IIS Compression\iiszlib.dll" />
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/javascript" enabled="true" />
<add mimeType="*/*" enabled="false" />
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/javascript" enabled="true" />
<add mimeType="application/atom+xml" enabled="true" />
<add mimeType="application/xaml+xml" enabled="true" />
<add mimeType="image/svg+xml" enabled="true" />
<add mimeType="*/*" enabled="false" />
</staticTypes>
</httpCompression>