Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So konfigurieren Sie die GZip-Komprimierung, wenn eine Node.js-Site Nginx als Reverse-Proxy verwendet

So konfigurieren Sie die GZip-Komprimierung, wenn eine Node.js-Site Nginx als Reverse-Proxy verwendet

PHPz
PHPznach vorne
2023-05-25 19:13:041307Durchsuche

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen