Heim > Artikel > Betrieb und Instandhaltung > So konfigurieren Sie die GZip-Komprimierung, wenn eine Node.js-Site Nginx als Reverse-Proxy verwendet
Node.js entwickelte Site, wenn Sie auch Nginx verwenden, um den Reverse-Proxy zu implementieren.
Dann können Sie die GZIP-Komprimierung einfach auf der Serverseite implementieren, um das Surfen auf der Site reibungsloser zu gestalten.
Voraussetzung: node.js + Nginx-Reverse-Proxy .
node.js Zu erledigende Arbeiten:
Express 4.0 oder niedriger:
app.use(express.compress()); //主要是这句 app.use(express.json()); app.use(express.urlencoded()); app.use(express.bodyparser()); app.use(express.methodoverride()); app.use(express.cookieparser());
Um alle Anforderungen zu komprimieren, wird compress oben platziert.
Express 4.0 oder höher (einschließlich 4.0)
var compress = require('compression'); app.use(compress());
4.0 oder höher Die Middleware wird unabhängig herausgenommen.
Sie müssen also zuerst rquire('Komprimierung')
Klicken Sie hier, um die Hauptunterschiede zwischen Express 3.5 und Express 4.0 anzuzeigen
So einfach ist die Arbeit, die node.js erledigen muss.
nginx muss erledigt werden Arbeit:
Öffnen Sie die Nginx-Konfigurationsdatei, ändern Sie die Konfiguration und schalten Sie den gzip-Schalter ein
nano /usr/local/nginx/conf/nginx.conf
Nginx auf Ihrem eigenen Server ist möglicherweise nicht im Verzeichnis /usr/local/ installiert, also suchen Sie nach die Konfigurationsdatei nginx.conf in Ihrem eigenen Installationsverzeichnis
Fügen Sie die folgende Konfiguration zum http-Konfigurationsknoten hinzu:
gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; http ( //放上面配置节点 )
Was bedeuten die einzelnen Konfigurationselemente?
1) gzip
Syntax: gzip ein/aus
Standardwert : off
Bereich: http, Server, Standort
Beschreibung: Aktivieren oder deaktivieren Sie das GZIP-Modul. Die Verwendung von „on“ bedeutet hier „Starten“
2) gzip_min_length
Syntax: gzip_min_length length
Standardwert: gzip_min_length 0
Bereich: http , Server, Standort
Beschreibung: Berechtigung festlegen Die Mindestanzahl der Bytes der komprimierten Seite. Die Anzahl der Bytes der Seite wird aus der Inhaltslänge im Header ermittelt. Der Standardwert ist 0, wodurch die Seite unabhängig von ihrer Größe komprimiert wird. Es wird empfohlen, die Anzahl der Bytes auf mehr als 1 KB festzulegen. Wenn sie weniger als 1 KB beträgt, wird die Komprimierung möglicherweise immer stärker. |
3) gzip_buffers
Syntax: gzip_buffers Zahlengröße
Standardwert: gzip_buffers 4 4k/8k
Geltungsbereich: http, Server, Standort
Beschreibung: Stellen Sie das System so ein, dass es mehrere Cache-Einheiten zum Speichern von gzip erhält. Komprimieren Sie die resultierenden Datenstrom. 4 16k bedeutet, dass Speicher in Einheiten von 16k und das Vierfache der ursprünglichen Datengröße in Einheiten von 16k beantragt wird.
4) gzip_comp_level
Syntax: gzip_comp_level 1..9
Standardwert: gzip_comp_level 1
Geltungsbereich: http, Server, Standort
Beschreibung: gzip-Komprimierungsverhältnis, 1 ist das minimale Komprimierungsverhältnis und die schnellste Verarbeitungsgeschwindigkeit, 9 Komprimierung Ist die größte, aber langsamste Verarbeitung (schnelle Übertragung, verbraucht aber mehr CPU). Hier ist es auf 5 eingestellt. ?? Unabhängig davon, ob der Typ „text/html“ angegeben ist, wird er immer komprimiert. Dies ist auf application/x-javascript text/css application/xml eingestellt.
Es gibt häufig verwendete statische Typen, abhängig von der Situation, die Sie komprimieren müssen:
text/html text/plain text/css application/x-javascript text/javascript application/xml
ok, der Basisserver wurde hier konfiguriert, Nginx muss nur neu geladen werden.
Testen wir es jetzt. So testen Sie mit Curl, ob gzip auf dem Server aktiviert ist (die Testbedingung ist der Standard-gzip_types, d. h. nur text.html wird komprimiert, andere Typen werden nicht komprimiert):
Überprüfen Sie, ob gzip aktiviert ist. Der Client muss beitreten: Header-Informationen „accept-encoding: gzip, deflate“.
$ curl -i -h "accept-encoding: gzip, deflate" "http://localhost/tag.php"
http/1.1 200 ok server: nginx date: thu, 08 mar 2012 07:23:46 gmt content-type: text/html connection: close content-encoding: gzip
$ curl -i -h "accept-encoding: gzip, deflate" "http://localhost/style.css"
http/1.1 200 ok server: nginx date: thu, 08 mar 2012 07:23:54 gmt content-type: text/css connection: close last-modified: tue, 27 dec 2011 10:00:51 gmt etag: "bc612352322d435769c4bdc03ddb2572" content-length: 22834
Man kann es sehen. Das zweite Beispiel ist nicht komprimiert.
Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie die GZip-Komprimierung, wenn eine Node.js-Site Nginx als Reverse-Proxy verwendet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!