GZipを事前圧縮してNginxの応答時間をちょっとだけ短縮する




1年以上前に更新された記事です。
情報が古い可能性がありますので、注意してください。

Nginx による GZip 圧縮は、アクセスの度に毎回行うため、応答時間に影響を与える。
高性能なマシンなら涼しい顔して処理してくれるのだろうけど、ここはラズパイ。サーバー界でみると、お世辞にも高性能とは言えない。
そこで、圧縮を事前に行い、少しでもラズパイの負荷を減らして応答速度を短縮する。

Nginx 設定

gzip_static を on にすることで、gzファイルがあればそちらを転送してくれるようになる。なお、この機能を使用するには、http_gzip_static_module をコンパイル時に有効化しておく必要があります。
また、事前圧縮しないものは圧縮レベルを下げて負荷を減らしました。

    gzip                on;
    gzip_static         on;
    gzip_vary           on;
    gzip_http_version   1.1;
    gzip_disable        "msie6";
    gzip_proxied        any;
    gzip_min_length     3k;
    gzip_comp_level     3;
    gzip_types          text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript text/json;

Gzip 事前圧縮

512バイト以上の js, css ファイルを圧縮レベル9で圧縮します。

$ find /var/www -size +512c \( -name '*.css' -or -name '*.js' \) -exec gzip -9 -kf {} \;

応答時間の確認

事前圧縮前
developer-tools-gzip1

事前圧縮後
developer-tools-gzip2

うーん誤差?

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です