¿Me equivoco al encontrar que Node.js no realiza compresión gzip y que no hay módulos para realizar la compresión gzip? ¿Cómo puede alguien usar un servidor web que no tiene compresión? ¿Que me estoy perdiendo aqui? ¿Debería intentar, jadear, portar el algoritmo a JavaScript para su uso en el servidor?
compression
gzip
node.js
SnickersAreMyFave
fuente
fuente
Si está utilizando Express , puede utilizar su método de compresión como parte de la configuración:
Y puedes encontrar más sobre comprimir aquí: http://expressjs.com/api.html#compress
Y si no estás usando Express ... ¡¿Por qué no, hombre ?! :)
NOTA: (gracias a @ankitjaininfo) Este middleware debería ser uno de los primeros que "use" para asegurarse de que todas las respuestas estén comprimidas. Asegúrese de que esté por encima de sus rutas y controlador estático (por ejemplo, cómo lo tengo arriba).
NOTA: (gracias a @ ciro-costa) Desde express 4.0, el
express.compress
middleware está obsoleto. Se heredó de connect 3.0 y Express ya no incluye connect 3.0. Consulte Express Compression para obtener el middleware.fuente
This middleware should be placed "high" within the stack to ensure all responses may be compressed.
Asegúrese de que esté por encima de sus rutas y controlador estáticoexpress.compress
middleware (que se heredó de connect 3.0 <) está en desuso (desde express 4.0) ya que ya no incluye connect 3.0 <. Consulte github.com/expressjs/compression para obtener el middleware.1- Instalar compresión
2- Úselo
compresión en Github
fuente
En términos generales, para una aplicación web de producción, querrá poner su aplicación node.js detrás de un proxy inverso ligero como nginx o lighttpd. Entre los muchos beneficios de esta configuración, puede configurar el proxy inverso para realizar compresión http o incluso compresión tls, sin tener que cambiar el código fuente de su aplicación.
fuente
Aunque puede gzip usando un proxy inverso como nginx, lighttpd o en barniz. Puede ser beneficioso tener la mayoría de las optimizaciones de http, como gzip en el nivel de la aplicación, para que pueda tener un enfoque mucho más granular sobre los activos a gzip.
De hecho, he creado mi propio módulo gzip para expressjs / connect llamado gzippo https://github.com/tomgco/gzippo, aunque es nuevo que hace el trabajo. Además, usa node-compress en lugar de generar el comando gzip de Unix.
fuente
Incluso si no está usando Express, aún puede usar su middleware. El módulo de compresión es lo que estoy usando:
fuente
Mientras que otros han señalado con razón el uso de un servidor web front-end como
nginx
puede manejar esto implícitamente, otra opción es usar el excelente proxy node-http-de nodejitsu para servir sus activos.p.ej:
Este ejemplo demuestra el apoyo a la compresión gzip a través del uso de middleware de conexión del módulo:
connect-gzip
.fuente
Para comprimir el archivo, puede usar el siguiente código
Para descomprimir el mismo archivo, puede usar el siguiente código
fuente
¿Qué tal esto ?
fuente
Hay varios middlewares Gzip para Express, KOA y otros. Por ejemplo: https://www.npmjs.com/package/express-static-gzip
Sin embargo, Node es terriblemente malo para realizar tareas intensivas de CPU como gzipping, terminación SSL, etc. En su lugar, use un servicio de middleware 'real' como nginx o HAproxy, consulte el punto 3 aquí: http://goldbergyoni.com/checklist-best- práctica-de-node-js-en-producción /
fuente
A día de hoy,
epxress.compress()
parece estar haciendo un trabajo brillante al respecto.En cualquier aplicación express solo llame
this.use(express.compress());
.Estoy manejando una locomotora en la parte superior del expreso personalmente y esto está funcionando muy bien. No puedo hablar con otras bibliotecas o marcos creados sobre Express, pero siempre que respeten la transparencia de la pila completa, debería estar bien.
fuente
Han sido unos buenos días con node, y tiene razón al decir que no puede crear un servidor web sin gzip.
Hay muchas opciones en la página de módulos en el Wiki de Node.js. Probé la mayoría de ellos, pero este es el que finalmente estoy usando:
https://github.com/donnerjack13589/node.gzip
La v1.0 también está disponible y se ha mantenido bastante estable hasta ahora.
fuente
Usar compresión gzip
La compresión Gzip puede disminuir enormemente el tamaño del cuerpo de respuesta y, por lo tanto, aumentar la velocidad de una aplicación web. Utilice el middleware de compresión para la compresión gzip en su aplicación Express. Por ejemplo:
fuente