Prefiere brotli, deje de comprimir lo que ya está comprimido

OtherKlusterServices
Shipped
20 de agosto de 2026 a las 22:46 UTC
Author
Kamo
Commit
3f36bd0

El middleware compartido "compress" fue compress: ", que es de tres años" por defectos separados y ninguno de ellos es el que queremos. Traefik elige gzip cada vez que el cliente lo ofrece en absoluto, independientemente de la orden que el cliente pidió. medida contra api.kamocrm.com, que es Spring Boot y no comprime por su propio origen: Accept-Encoding: gzip, deflate, br, zstd - . gzip 119 bytes Accept-Encoding: br, gzip --gzip 119 bytes Aceptar-Encoding: br -o br 87 bytes La segunda línea es el hallazgo: pedir brotli primero aún devuelto gzip. Cada navegador envía gzip, así que nada detrás de esta cadena ha recibió brotli, aproximadamente el 25% de cada respuesta JSON de cada Java servicio, entregado a un orden por defecto. También comprimió cosas que ya están comprimidas. /favicon/favicon-96x96.png es de 12.763 bytes y regresó como 12.793 . más grande, más CPU de compresor aquí y CPU descomprimido en el navegador, encendido cada petición de imagen en cada sitio de la cadena. El anfitrión temático ya resolvió esto con una lista de permiso (la atención-comprimir); el mismo PNG servido de ahí pasa por intacto. Esto trae la cadena compartida en línea. Y comprimió cuerpos demasiado pequeños para beneficiar: api.kamocrm.com's 404 el cuerpo es 99 bytes como identidad y 119 bytes gzipped. minResponseBodyBytes Ahora está establecido en lugar de asumir. La lista de la permitida es una lista de lacha de permiso en lugar de una lista de exclusiones específicamente debido a texto/event-stream. La compresa SSE lo amortigua, que es lo único que una corriente no debe hacer; una lista de permiso lo excluye por construcción. texto/x-component está en la lista a propósito . Siguiente 16 prefetchs cada "Link" en el puerto como RSC, 60-100 KB cada uno, y Dejarlo fuera en silencio no arreglaría eso para cada aplicación Siguiente que lo hace no comprimir en su origen. CRDs regenerados de v3.3 en el mismo compromiso, porque los encodings. requiere Traefik = 3.2 y los DRC comprometidos se generaron para un La liberación antes-3.2 mientras que el binario en marcha es v3.3. El campo tendría ha sido SILENTLY PRUNED por el servidor API, no rechazado. despleg-servicios.yml pasas --validate=false - para que esto hubiera mirado aplicado y no ha cambiado nada. Esquema diff verificado puramente aditivo: 88 campos añadidos, 0 eliminados, los mismos 10 CRDs, las mismas versiones, y Acepta los diez años de aplicación de la aplicación -dry-run=server.

All changes

Como lo que ves enviaste?

Cada una de estas actualizaciones aterriza en su espacio de trabajo automáticamente. Empieza gratis y verlo crecer semana tras semana.

Arranzar gratis para siempreVer Precios