web-dev-qa-db-ja.com

nginx gzip_staticモジュールが機能していることを確認するにはどうすればよいですか?

Nginxが.gzバージョンの静的ファイルを提供していることを確認するにはどうすればよいですか?

Nginxをgzip静的モジュールを使用してコンパイルしましたが、ログで提供されている.gzバージョンの言及がありません。 (同じディレクトリに.gzバージョンのglobal.jsファイルとglobal.cssファイルを縮小しました)。

Nginx.confの関連部分は次のようになります。

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;

どんなポインタでもいただければ幸いです。

51
Rob Watson

Straceを使用します。まず、nginxプロセスのPIDを検出する必要があります。

# 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

25044はワーカープロセスです。今、それを追跡します:

# 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

ご覧のとおり、ファイルの.gzバージョンを見つけようとしています。

82
Milan Babuškov

Gzipされていないファイルの内容を変更します。次に、両方のファイルをtouchします(同時に、つまりtouchの同じインスタンス化内)。ブラウザーでファイルをロードするときに(キャッシュをワイプして)変更されていないファイルを取得した場合、nginxはstatic-cached-gzippedファイルを提供しました。

回避する簡単な方法「キャッシュをフェッチしただけですか?」心配は、curlはキャッシュしないため、curlを使用してコマンドラインからフェッチすることです。

19
mxcl

自動圧縮を無効にして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;
   }
}

サーバーと場所のレベルごとにgzipgzip_staticaccess_logを上書きできることに注意してください。

17