Directorio de artículos
introducción
En el rápido desarrollo de la Internet moderna, la velocidad de acceso a los sitios web se ha convertido cada vez más en la clave para la selección y retención de usuarios. Entre ellos, optimizar la eficiencia de la transmisión mediante gzip
tecnología de compresión puede acelerar significativamente el acceso a la página, mejorar la experiencia del usuario y la calidad del sitio web. Como nginx
servidor web de alto rendimiento, su gzip
método de configuración que admite la compresión tiene grandes ventajas. Este artículo presentará cómo configurar la compresión nginx
y discutirá su papel en la optimización de la eficiencia de la transmisión y la mejora de la velocidad de acceso a la página, así como los problemas que requieren atención en aplicaciones prácticas.gzip
1. ¿Qué es el gzip de nginx?
Nginx
es gzip
una función para comprimir el contenido de la respuesta HTTP. Cuando está habilitado , el contenido de la respuesta se comprime para reducir su tamaño gzip
antes de enviarlo al cliente . Nginx
Esto reduce el consumo de ancho de banda y el tiempo de respuesta de la transmisión de datos y mejora el rendimiento y la velocidad del sitio web.
gzip
Las funciones de habilitación Nginx
se pueden configurar en el archivo de configuración. Al agregar parámetros relevantes en la configuración gzip
, puede especificar el tipo de contenido de respuesta que se comprimirá, el nivel de compresión y habilitar o deshabilitar gzip
funciones.
En concreto, gzip
las principales funciones de la función incluyen:
- Reducir el tamaño del archivo: al comprimir el contenido de la respuesta, puede reducir significativamente el tamaño del archivo y reducir el ancho de banda requerido para la transmisión de datos.
- Mejore el rendimiento del sitio web: los archivos comprimidos se pueden transmitir al cliente más rápido, lo que reduce la latencia de la red y el tiempo de transmisión, mejorando así el rendimiento del sitio web y acelerando la carga de la página.
- Ahorre recursos del servidor: dado que los archivos comprimidos son más pequeños, el servidor necesita gastar menos CPU y memoria para procesar y transmitir estos archivos, mejorando así el rendimiento del servidor y la utilización de recursos.
Cabe señalar que gzip
esta función solo se aplica a archivos de texto y los archivos ya comprimidos (como imágenes, videos, etc.) no se comprimirán gzip
. Además, debe asegurarse de que el cliente admita gzip
la compresión; de lo contrario, no podrá disfrutar gzip
de los beneficios de la función.
2. Elementos de configuración comunes de nginx
La siguiente es una tabla Nginx
de gzip
elementos de configuración comunes y sus funciones para la función de compresión:
Elementos de configuración | efecto | Ejemplo |
---|---|---|
zip | Si se debe habilitar la compresión gzip | gzip encendido; |
tipos_gzip | Especifique el tipo MIME para comprimir | gzip_types texto/texto html/aplicación simple/javascript; |
gzip_min_length | Especificar el tamaño mínimo del archivo comprimido | gzip_min_length 1000; |
gzip_comp_level | Especifique el rango de nivel de compresión de 1 a 9; cuanto mayor sea el valor, mayor será el grado de compresión. | gzip_comp_level 6; |
gzip_buffers | Especifique el tamaño del búfer de memoria utilizado para la compresión gzip | gzip_buffers 16 8k; |
gzip_disable | Especifique User-Agent para que no utilice la compresión gzip | gzip_disable “MSIE [1-6].(?!.*SV1)”; |
gzip_proxied | Determine si se debe comprimir la respuesta según el encabezado "Accept-Encoding" en la solicitud del cliente. El valor puede ser "off", "expired", "no-cache", "no-store", "private", "no_last_modified" ", "no_etag", "auth" o "cualquiera" | gzip_proxied cualquiera; |
gzip_vary | Si la respuesta enviada está comprimida con gzip, agregue "Vary: Accept-Encoding" al encabezado de la respuesta para notificar al servidor de caché que el contenido de la respuesta puede existir en forma comprimida o sin comprimir. | gzip_vary: activado; |
gzip_http_versión | Configure la versión del protocolo HTTP para la compresión gzip. | gzip_http_versión:1.0 |
3. Ejemplos de uso
Habilitar la compresión gzip en Nginx puede mejorar significativamente el rendimiento del sitio web, reducir el tamaño de los archivos transferidos y acelerar la carga de la página. Aquí hay un ejemplo detallado:
-
Abra el archivo de configuración de Nginx (generalmente ubicado en
/etc/nginx/nginx.conf
o/etc/nginx/conf.d/default.conf
).
-
Agregue el siguiente código en
http
el bloque para habilitar la compresión gzip:
http {
gzip on;
gzip_comp_level 5;
gzip_min_length 256;
gzip_proxied any;
gzip_vary on;
gzip_types
application/atom+xml
application/javascript
application/json
application/ld+json
application/manifest+json
application/rss+xml
application/vnd.geo+json
application/vnd.ms-fontobject
application/x-font-ttf
application/x-web-app-manifest+json
application/xhtml+xml
application/xml
font/opentype
image/bmp
image/svg+xml
image/x-icon
text/cache-manifest
text/css
text/plain
text/vcard
text/vnd.rim.location.xloc
text/vtt
text/x-component
text/x-cross-domain-policy;
}
Las funciones de cada elemento de configuración en el código anterior son las siguientes:
gzip on;
Habilite la compresión gzip.gzip_comp_level 5;
Establezca el nivel de compresión, el rango de valores es del 1 al 9. Cuanto mayor sea el valor, mayor será la relación de compresión, pero también consumirá más recursos de la CPU.gzip_min_length 256;
Establezca el tamaño mínimo del archivo comprimido; los archivos más pequeños que este tamaño no se comprimirán.gzip_proxied any;
Determine si se debe comprimir la respuesta según el encabezado "Accept-Encoding" en la solicitud del cliente. El valor puede ser "off", "expired", "no-cache", "no-store", "private", "no_last_modified" ", "no_etag", "auth" o "cualquiera".gzip_vary on;
Si la respuesta enviada está comprimida con gzip, agregue "Vary: Accept-Encoding" al encabezado de la respuesta para notificar al servidor de caché que el contenido de la respuesta puede existir en forma comprimida o sin comprimir.gzip_types
Configure los tipos de archivos que se comprimirán con gzip, en relación con la extensión del archivo.
-
Busque el bloque del servidor en el archivo de configuración de Nginx, luego busque el host virtual especificado por la directiva server_name y luego agregue la siguiente configuración:
server { ... location / { ... gzip_static on; ... } ... }
gzip_static on
Esta configuración le dice a Nginx que use archivos precomprimidos (archivos .gz), si están presentes, en lugar de compresión en tiempo real. Esto puede mejorar la eficiencia de la compresión, especialmente para archivos estáticos.
-
Reinicie el servidor Nginx para que la configuración surta efecto.
nginx -s recargar
4. Utilice el navegador para comprobar si gzip está activo.
1. Determine si el navegador admite gzip.
Como se muestra en la imagen de arriba, para verificar si el navegador admite la función, puede determinarlo gzip
mirando el campo " " en el encabezado de solicitud del navegador .Accept-Encoding
Las solicitudes Network
enviadas por el navegador se pueden encontrar en la pestaña " " de las herramientas de desarrollo del navegador . HTTP
en solicitadoEncabezado de solicitud, habrá un campo llamado " Accept-Encoding
",Este campo especifica el formato de codificación admitido por el navegador.。
Si el navegador admite gzip
la compresión, el Accept-Encoding
campo " " contendrá palabras clave como "gzip
" o " deflate
". Esto significa que el navegador admite gzip
la compresión de datos. Si el navegador no la admite, el Accept-Encoding
campo " " no contendrá ninguna palabra clave relacionada.
Alternativamente, puede utilizar herramientas en línea para detectar si su navegador admite gzip
la compresión. Algunas herramientas de uso común incluyen https://www.giftofspeed.com/gzip-test/
, https://www.whatsmyip.org/http-compression-test/
etc. En estas herramientas, ingrese lo que desea probar URL
y la herramienta simulará una solicitud del navegador y luego mostrará información sobre la respuesta de la solicitud, incluido si gzip
se utiliza compresión.
Es importante tener en cuenta que la mayoría de los navegadores modernos admiten gzip
la compresión, ya que mejora la velocidad de carga de las páginas web y ahorra ancho de banda. Por lo tanto, en circunstancias normales, el navegador predeterminado puede admitir gzip
esta función.
2. Determinar si gzip es efectivo
Utilice las herramientas de desarrollo del navegador para inspeccionar los encabezados de respuesta. Abra las herramientas de desarrollador en su navegador (generalmente presione F12), cambie a la Network
pestaña Red ( ) y actualice la página. Response headers
Busque " Content-Encoding
" o " Content-Encoding: gzip
" información en el encabezado de respuesta ( ).Si se encuentra esta información de encabezado, significa que gzip ha entrado en vigor.。
Resumir
En este artículo, detallamos cómo nginx
configurar gzip
la compresión para optimizar la eficiencia de la transferencia y acelerar el acceso a la página. Mediante gzip
la compresión, podemos reducir significativamente el tamaño de los datos transmitidos, reduciendo así el tiempo de transmisión y el consumo de ancho de banda. Al mismo tiempo, también analizamos cuestiones a las que se debe prestar atención en aplicaciones prácticas, como los niveles de compresión, los tipos de compresión y los tipos de archivos. En general, nginx
optimizando gzip
la configuración podemos mejorar el rendimiento y la experiencia de usuario del sitio web, y contribuir a mejorar la calidad y competitividad del sitio web.