51 votes

Comment puis-je vérifier que le module nginx gzip_static fonctionne ?

Comment puis-je vérifier que nginx sert la version .gz des fichiers statiques, s'ils existent ?

J'ai compilé nginx avec le module gzip static, mais je ne vois aucune mention de la version .gz servie dans mes journaux. (J'ai des fichiers global.js et global.css minifiés avec des versions .gz dans le même répertoire).

La partie concernée du fichier nginx.conf ressemble à ceci :

gzip  on;
gzip_static on;
gzip_http_version 1.0;
gzip_disable "MSIE [1-6]\.";
gzip_vary on;

gzip_comp_level 2;
gzip_proxied any;
gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;

Toute indication serait appréciée.

84voto

Milan Babuškov Points 20423

Utilisez strace. Tout d'abord, vous devez détecter le PID du processus nginx :

# ps ax | grep nginx
25043 ?        Ss     0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
25044 ?        S      0:02 nginx: worker process

Ok, donc 25044 est le processus de travail. Maintenant, on le trace :

# strace -p 25044 2>&1 | grep gz
open("/var/www/css/ymax.css.gz", O_RDONLY|O_NONBLOCK) = 438
open("/var/www/css/patches/patch_my_layout.css.gz", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory)
open("/var/www/yaml/core/iehacks.css.gz", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory)
open("/var/www/js/koznazna5.js.gz", O_RDONLY|O_NONBLOCK) = -1 ENOENT (No such file or directory)
open("/var/www/css/ymax.css.gz", O_RDONLY|O_NONBLOCK) = 216

Comme vous pouvez le voir, il essaie de trouver des versions .gz des fichiers.

20voto

mxcl Points 5921

Modifier le contenu du fichier non compressé. Et ensuite touch les deux fichiers (simultanément - c'est-à-dire dans la même instanciation de l'application touch ). Si, lorsque vous chargez le fichier dans un navigateur (sans cache), vous obtenez le fichier non modifié, c'est que nginx a servi le fichier statique-caché-gzippé.

Un moyen simple d'éviter "est-ce que je viens d'aller chercher le cache ?" est de récupérer à partir de la ligne de commande avec curl puisque curl n'a pas de cache.

17voto

Alexander Azarov Points 6630

Je désactiverais la compression automatique et j'enregistrerais gzip_ratio :

http {
   gzip off;
   gzip_static on;

   log_format log_with_ratio "... $gzip_ratio ...";

   server {
      access_log /var/log/nginx/file.log log_with_ratio;
   }
}

Notez que vous pouvez remplacer gzip , gzip_static y access_log aux niveaux du serveur et de l'emplacement.

2voto

Slava Fomin II Points 1141

J'ai remarqué un certain nombre d'indices concernant ETag en-tête de réponse.

Si le fichier statique est servi par nginx, l'en-tête ressemble à ceci : ETag: "135a-BQhu6KL71dyeCXcVZme6ug" Cependant, lorsque nginx compresse la réponse (via le module gzip), cela ressemble à ceci : ETag: W/"135a-BQhu6KL71dyeCXcVZme6ug" (avis W/ ).

Vous pouvez l'utiliser ainsi que Content-Encoding: gzip pour distinguer les fichiers statiques simples, les fichiers statiques pré-compressés et les fichiers compressés à la volée.

-2voto

Spock Points 384

J'utilise généralement les outils de développement de Chrome et je regarde la taille des fichiers en question.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X