Maison  >  Article  >  Opération et maintenance  >  Comment utiliser Nginx comme proxy inverse pour configurer la compression GZip

Comment utiliser Nginx comme proxy inverse pour configurer la compression GZip

WBOY
WBOYavant
2023-05-22 23:43:041073parcourir

Prérequis : node.js + nginx reverse proxy.

node.js Travail à faire :

express 4.0 ou inférieur :

app.use(express.compress()); //主要是这句
app.use(express.json()); 
app.use(express.urlencoded()); 
app.use(express.bodyparser()); 
app.use(express.methodoverride()); 
app.use(express.cookieparser());
#🎜 🎜#Afin de compresser toutes les requêtes, la compression est placée ci-dessus.

express version 4.0 ou supérieure (y compris 4.0)

var compress = require('compression');
app.use(compress());

4.0 ou version supérieure supprime le middleware indépendamment .

Vous devez donc d'abord demander('compression')

Cliquez ici pour voir les principales différences entre express 3.5 et express 4.0

node. js Le travail à effectuer est aussi simple que cela.

nginx Le travail à effectuer :

Ouvrez le fichier de configuration nginx, modifiez la configuration et allumez-le. le commutateur gzip

nano /usr/local/nginx/conf/nginx.conf

nginx sur votre propre serveur n'est peut-être pas installé dans le répertoire /usr/local/, alors recherchez le fichier de configuration nginx.conf

selon le vôtre répertoire d'installation et ajoutez la configuration suivante au nœud de configuration http : #🎜🎜 #
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 (
    //放上面配置节点  
)

Que signifie chaque élément de configuration

1) gzip

Syntaxe : gzip on/off

Valeur par défaut :off

Portée : http, serveur, emplacement

Description : Activez ou désactivez le module gzip, en utilisant Ici signifie démarrage # 🎜🎜 ## 🎜🎜 # 2) gzip_min_length # 🎜🎜 ## 🎜🎜 # syntaxe: gzip_min_length longueur # 🎜🎜 ## 🎜🎜 # valeur par défaut: gzip_min_length 0 # 🎜🎜 ## 🎜🎜 # # scope: http, serveur, emplacement

Description : Définissez le nombre minimum d'octets de la page pouvant être compressés. Le nombre d'octets de la page est obtenu à partir de la longueur du contenu dans l'en-tête. La valeur par défaut est 0, ce qui compresse la page quelle que soit sa taille. Il est recommandé de définir le nombre d'octets sur une valeur supérieure à 1 Ko. S'il est inférieur à 1 Ko, il peut être de plus en plus compressé. |

3) gzip_buffers

Syntaxe : gzip_buffers taille du nombre

Valeur par défaut : gzip_buffers 4 4k/8k

Fonction Domaine : http, serveur, emplacement

Description : Configurez le système pour obtenir plusieurs unités de cache pour stocker le flux de données du résultat de la compression gzip. 4 16 Ko signifie demander de la mémoire en unités de 16 Ko et 4 fois la taille des données d'origine en unités de 16 Ko.

4) gzip_comp_level

Syntaxe : gzip_comp_level 1..9

Valeur par défaut : gzip_comp_level 1

Portée : http , serveur, emplacement

Description : taux de compression gzip, 1 a le taux de compression le plus petit et la vitesse de traitement la plus rapide, 9 a le taux de compression le plus élevé mais le traitement le plus lent (transmission rapide mais consomme plus de CPU). Ici, il est fixé à 5.

5) gzip_types

Syntaxe : gzip_types mime-type [mime-type ...]

Valeur par défaut : gzip_types text/html#🎜 🎜#

Portée : http, serveur, emplacement

Description : Correspond au type MIME pour la compression, (qu'il soit spécifié ou non) le type "text/html" sera toujours compressé. Ceci est défini sur application/x-javascript text/css application/xml.

Il existe des types statiques couramment utilisés, selon la situation dans laquelle vous devez compresser :

text/html
text/plain
text/css
application/x-javascript
text/javascript
application/xml

ok Le serveur de base a été configuré ici, et nginx n'a qu'à être rechargé. .

Testons comment utiliser curl pour vérifier que le serveur a activé gzip (la condition de test est les gzip_types par défaut, c'est-à-dire que seul text.html est compressé, les autres types ne sont pas compressés) : # 🎜🎜##🎜🎜 #Pour vérifier si gzip est activé, le client doit ajouter : les informations d'en-tête "accepter-encodage : 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

Tu peux le voir. Le deuxième exemple n'est pas compressé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer