Bin ich falsch darin festzustellen, dass Node.js keine GZIP-Komprimierung durchführt und es keine Module gibt, die eine GZIP-Komprimierung durchführen können? Wie kann jemand einen Webserver ohne Komprimierung verwenden? Was vermisse ich hier? Sollte ich versuchen, den Algorithmus für die serverseitige Verwendung nach JavaScript zu portieren?
compression
gzip
node.js
SnickersAreMyFave
quelle
quelle
Wenn Sie Express verwenden , können Sie die Komprimierungsmethode als Teil der Konfiguration verwenden:
Weitere Informationen zur Komprimierung finden Sie hier: http://expressjs.com/api.html#compress
Und wenn Sie Express nicht verwenden ... Warum nicht, Mann?! :) :)
HINWEIS: (dank @ankitjaininfo) Diese Middleware sollte eine der ersten sein, die Sie "verwenden", um sicherzustellen, dass alle Antworten komprimiert werden. Stellen Sie sicher, dass dies über Ihren Routen und dem statischen Handler liegt (z. B. wie ich es oben habe).
HINWEIS: (danke an @ ciro-costa) Seit Express 4.0 ist die
express.compress
Middleware veraltet. Es wurde von Connect 3.0 geerbt und Express enthält Connect 3.0 nicht mehr. Überprüfen Sie die Express-Komprimierung , um die Middleware zu erhalten.quelle
This middleware should be placed "high" within the stack to ensure all responses may be compressed.
Stellen Sie sicher, dass dies über Ihren Routen und statischen Handler istexpress.compress
Middleware (die von Connect 3.0 <geerbt wurde) veraltet (seit Express 4.0), da sie Connect 3.0 <nicht mehr enthält. Überprüfen Sie github.com/expressjs/compression , um die Middleware zu erhalten.1- Installieren Sie die Komprimierung
2- Verwenden Sie es
Komprimierung auf Github
quelle
Im Allgemeinen sollten Sie für eine Produktionswebanwendung Ihre node.js-App hinter einem leichtgewichtigen Reverse-Proxy wie nginx oder lighttpd platzieren. Unter den vielen Vorteilen dieses Setups können Sie den Reverse-Proxy für die HTTP-Komprimierung oder sogar die TLS-Komprimierung konfigurieren, ohne den Quellcode Ihrer Anwendung ändern zu müssen.
quelle
Obwohl Sie mit einem Reverse-Proxy wie nginx, lighttpd oder in Lack gzip können. Es kann von Vorteil sein, die meisten http-Optimierungen wie z. B. GZIP auf Anwendungsebene vorzunehmen, damit Sie einen sehr detaillierten Ansatz für die zu gzipenden Assets haben.
Ich habe tatsächlich mein eigenes gzip-Modul für expressjs / connect namens gzippo https://github.com/tomgco/gzippo erstellt, obwohl es neu ist. Außerdem wird Node-Compress verwendet, anstatt den Unix-Befehl gzip zu erzeugen.
quelle
Auch wenn Sie kein Express verwenden, können Sie die Middleware verwenden. Das Komprimierungsmodul ist das, was ich verwende:
quelle
Während andere zu Recht darauf hingewiesen haben, dass ein Front-End-Webserver verwendet werden
nginx
kann, der dies implizit handhaben kann, besteht eine weitere Option darin, den hervorragenden Node-http-Proxy von Nodejitsu zu verwenden von , um Ihre Assets .z.B:
Dieses Beispiel zeigt die Unterstützung der gzip-Komprimierung mithilfe des Connect Middleware- Moduls :
connect-gzip
.quelle
Zum Komprimieren der Datei können Sie den folgenden Code verwenden
Zum Dekomprimieren derselben Datei können Sie den folgenden Code verwenden
quelle
Wie wäre es damit ?
quelle
Es gibt mehrere Gzip-Middlewares für Express, KOA und andere. Zum Beispiel: https://www.npmjs.com/package/express-static-gzip
Node ist jedoch schrecklich schlecht darin, CPU-intensive Aufgaben wie Gzipping, SSL-Terminierung usw. auszuführen. Verwenden Sie stattdessen einen "echten" Middleware-Dienst wie Nginx oder HAproxy. Siehe Punkt 3 hier: http://goldbergyoni.com/checklist-best- Praxis-des-Knotens-js-in-Produktion /
quelle
Ab heute
epxress.compress()
scheint dies hervorragend zu funktionieren.In jeder Express-App einfach anrufen
this.use(express.compress());
.Ich fahre persönlich eine Lokomotive auf dem Express und das funktioniert wunderbar. Ich kann nicht mit anderen Bibliotheken oder Frameworks sprechen, die auf Express basieren, aber solange sie die volle Stapeltransparenz gewährleisten, sollte es Ihnen gut gehen.
quelle
Es waren ein paar gute Tage mit Node, und Sie können zu Recht sagen, dass Sie ohne gzip keinen Webserver erstellen können.
Auf der Modulseite im Node.js-Wiki finden Sie zahlreiche Optionen. Ich habe die meisten ausprobiert, aber dies ist die, die ich endlich benutze -
https://github.com/donnerjack13589/node.gzip
v1.0 ist auch raus und es war bisher ziemlich stabil.
quelle
Verwenden Sie die gzip-Komprimierung
Durch die Gzip-Komprimierung kann die Größe des Antwortkörpers erheblich verringert und damit die Geschwindigkeit einer Web-App erhöht werden. Verwenden Sie die Komprimierungs-Middleware für die GZIP-Komprimierung in Ihrer Express-App. Beispielsweise:
quelle