Nginx 要設定 Gzip 的注意事項 與 測試方式 要怎麼做?
Nginx 的 Gzip 設定 與 測試
Nginx 若只有 gzip on,預設只會對 .html 做壓縮,其它的都不吃,記得要搭配 gzip_types 來操作使用。
- Nginx Gzip 文件可見:Module ngx_http_gzip_module
Nginx gzip 最小化設定參數
gzip on; gzip_types *; gzip_disable "MSIE [1-6].(?!.*SV1)";
Nginx gzip 常用的設定參數(加上壓縮等級)
gzip on; gzip_types *; gzip_comp_level 9; # 1~9 gzip_disable "MSIE [1-6].(?!.*SV1)";
再來測試看看:(-H 'Accept-Encoding: gzip,deflate' 或 --compressed 要記得加上)
$ curl -I -H 'Accept-Encoding: gzip,deflate' "http://example.com/api/test.php" # 下述回傳注意粗體字部份即可
HTTP/1.1 200 OK Server: nginx/1.10.3 Date: Tue, 10 Oct 2018 07:47:39 GMT Content-Type: application/json Connection: close Content-Encoding: gzip
註:$ curl -I --compressed "http://example.com/api/test.php" # 等同上述
Nginx Gzip 更多設定範例參數
gzip on; gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/json text/xml application/xml+rss image/jpeg image/gif image/png; gzip_disable "MSIE [1-6].(?!.*SV1)"; gzip_comp_level 9; gzip_min_length 1k; # 大於這個 size 才壓縮,也可以寫 1000 gzip_buffers 4 32k; gzip_vary on;