Maison >Opération et maintenance >Nginx >Comment utiliser Nginx comme proxy inverse pour configurer la compression GZip
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.0node. 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.confnginx 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, emplacementDescription : 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/xmlok 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: 22834Tu 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!