はじめに
gzip_comp_level をいくつに設定したら良いのか分からなかったため調べました。
デフォルト
まず、デフォルト値は以下のように「1」に設定されており、1~9までの値を設定できます。この値を増やせば増やすほど圧縮率が上がり、同時にCPUコストも上がります。
構文: gzip_comp_level level;
デフォルト: gzip_comp_level 1;
コンテキスト: http, server, location
応答の圧縮level を設定します。可能な値は1から9の範囲です。
http://mogile.web.fc2.com/nginx/http/ngx_http_gzip_module.html#gzip_comp_level
圧縮率
pipinfo、jqueryの2つで圧縮率を比較された記事があったため引用します。
事例1 (pipinfo)
0 55.38 KiB (100.00% of original size)
1 11.22 KiB ( 20.26% of original size)
2 10.89 KiB ( 19.66% of original size)
3 10.60 KiB ( 19.14% of original size)
4 10.17 KiB ( 18.36% of original size)
5 9.79 KiB ( 17.68% of original size)
6 9.62 KiB ( 17.37% of original size)
7 9.50 KiB ( 17.15% of original size)
8 9.45 KiB ( 17.06% of original size)
9 9.44 KiB ( 17.05% of original size)
事例2 (jquery)
0 261.46 KiB (100.00% of original size)
1 95.01 KiB ( 36.34% of original size)
2 90.60 KiB ( 34.65% of original size)
3 87.16 KiB ( 33.36% of original size)
4 81.89 KiB ( 31.32% of original size)
5 79.33 KiB ( 30.34% of original size)
6 78.04 KiB ( 29.85% of original size)
7 77.85 KiB ( 29.78% of original size)
8 77.74 KiB ( 29.73% of original size)
9 77.75 KiB ( 29.74% of original size)
What is the best nginx compression gzip level?
I'm using nginx reverse proxy cache with gzip enabled. However, I got some problems from Android applications HTTP-reque...
見ての通り、圧縮率は0から1にかけては大幅な効果がありますが、1以降は微量な効果しか期待できないようです。
まとめ
CPUコストを上げるほどの効果が見込めないため、gzip_comp_level はデフォルトの「1」のままで問題なさそうです。
ただ、CPUに余裕がある場合は4くらいに設定しても良いと思います。
コメント