doudonn WEB制作やサーバーの話とかいろいろ

Nginxはgzip staticで高速化!設定方法・圧縮方法を解説

  doudonn 更新日:
Nginxはgzip staticで高速化!設定方法・圧縮方法を解説

gzip staticで高速化!

これは絶対にやった方が良いです。
特に面倒でもなく効果は抜群。

Nginxにおけるgzip_ staticを説明します。

1、gzip staticを使わない場合のgzip処理

Nginxでgzip_staticを使わない場合のgzip処理解説

gzip_staticを使わずただ「gzip on」の場合は毎回圧縮・送信する。

実際にはメモリにキャッシュしているかもしれませんが、
「毎回圧縮処理をするのでCPU負荷が大きい」というのが定説。
そのため、毎回処理するのを止めたい。

というのを実現できるのが「gzip_static」。

2、gzip staticを使った場合のgzip処理

Nginxでgzip_staticをonにした場合のgzip処理解説

「gz」ファイルを探して使ってくれる!

「style.css」の場合、自動的に「style.css.gz」というファイルを探してくれます。
見つかったらそれを返し、見つからなかったら通常通り「style.css」を圧縮します。
したがって、あらかじめ圧縮ファイルを作っておくとCPU負荷も無く高速な処理となる。

さらに良いのが圧縮レベル。

3、gzip staticを使用するメリット

Nginxでgzip_staticを使う最大のメリットは圧縮レベルを9にできること

最高圧縮で保存しておくことができる。

普通は最高圧縮にするとCPUの負荷が大きいので不可能なのですが、
あらかじめゆっくり作ることができるので、基本的に最高圧縮(レベル9)で保存します。
ファイルサイズは確実に下がります。

4、Nginxでgzip staticを使うにはモジュールが必要

「ngx_http_gzip_static_module」が必要です。

下記コマンドでインストールされているか確認ください。

nginx -V 2>&1 | tr ' ' '\n'|egrep _module | sed -e 's/--with-//g'

インストールされていない場合は「Nginxを再インストール」となります(多分)。
「–with-http_gzip_static_module」をつけてインストールしないといけない。
ただし、リポジトリからインストールしている自分は何もせず全部入っていました。

とりあえず確認を。

5、Nginxでのgzip static設定方法

gzip_static on;
gzip on;
gzip_comp_level 1;
gzip_min_length 1024;
gzip_vary on;
gzip_proxied any;
gzip_types text/plain text/css text/javascript application/javascript application/x-javascript application/json application/ld+json text/xml application/xml application/xhtml+xml application/atom+xml application/xml+rss application/rss+xml image/x-icon image/svg+xml image/bmp;

いつもの記載内容に「gzip_static on」を追加するだけ。

これだけで有効になるのでお手軽。
自分はこれだけを設定することをおすすめします。

ググると「gzip_static always」を指定されている方が多いですが、
これは「どんな状況でもgzファイルを使う」という指定。
全ての対象ファイルを圧縮して保存することが前提です(理想ではある)。

これだと未対応のユーザーは表示されないので、合わせて「gunzip on;」も指定する必要がある。
クライアントがgzipに対応していなかった場合はサーバー側で解凍してから送信します。

詳しくは下記ページを見てください。

公式解説:ngx_http_gzip_static_module モジュール

6、gzipで圧縮する方法

<PHPの場合>

gzencode($file, 9)

<ubuntu(Linux)の場合>

gzip -9 -k style.css

自分は更新の度に自動でPHPで作るようにしています。

7、圧縮した方が良いファイル

css、js、xmlなどのテキスト系ファイル全般

「画像以外」と考えても大丈夫です。
基本的には「gzip_types」で指定しているファイルになる。

ただし、画像も「圧縮レベル9」だとサイズが小さくなることが多い。
こだわりたい人はいろいろ圧縮して確認してみてください。

--

以上、Nginxにおけるgzip staticの説明でした。

効果抜群なので是非やってみてください。

Nginxの関連記事
サーバーの関連記事

記事一覧はこちら:サーバー

管理人について
doudonn
名前:doudonn(どうどん)
ひたすらWEB制作な人。
一応社長です。音ゲー好き

プロフィール
お知らせ

2022年11月30日に全記事削除しました。
無駄にページ表示速度にこだわってます。

役立ちサイト
wiki

プライバシーポリシー・広告について


© 2022-2024 doudonn All Rights Reserved.