Site développé par Node.js, si vous utilisez également nginx pour implémenter le proxy inverse.
Ensuite, vous pouvez facilement implémenter la compression gzip côté serveur pour rendre la navigation sur le site plus fluide.
Prérequis : proxy inverse node.js + nginx .
node.js Travail à effectuer :
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, compress est placé en haut.
express 4.0 ou supérieur (y compris 4.0)
var compress = require('compression'); app.use(compress());
4.0 ou supérieur le middleware est supprimé 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
Le travail que node.js doit faire est aussi simple.
nginx doit être fait Travail :
Ouvrez le fichier de configuration nginx, modifiez la configuration et activez 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 dans votre propre répertoire d'installation
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, utilisez ici pour signifier début
2) gzip_min_length
Syntaxe : gzip_min_length length
Valeur par défaut : gzip_min_length 0
Scope : http, serveur, emplacement
Description : Définir l'autorisation Le nombre minimum d'octets de la page compressée 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 number size
Valeur par défaut : gzip_buffers 4 4k/8k
Portée : http, serveur, emplacement
Description : Configurez le système pour obtenir plusieurs unités de cache pour stocker gzip. Compressez le flux de données résultant. 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 est le taux de compression minimum et la vitesse de traitement la plus rapide, 9 compression Que le traitement le plus important mais le plus lent (la transmission est rapide mais consomme plus de CPU). Ici, il est fixé à 5. ( Indépendamment du fait qu'il soit spécifié, 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 que 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, nginx n'a qu'à être rechargé.
Testons-le maintenant. Comment utiliser curl pour tester que gzip a été activé sur le serveur (la condition de test est les gzip_types par défaut, c'est-à-dire que seul text.html est compressé et les autres types ne sont pas compressés) :
Vérifiez si gzip est activé, le client doit joindre : les informations d'en-tête " 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
Vous pouvez 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!