torbo

Nginxでgzip圧縮を有効にして表示速度を7倍高速に

Nginxでgzip ONにすることで圧縮通信を行って、通信量を減らすことでWEBページの表示の高速化が可能になります。

圧縮の効果

最近のPCなどのCPUの演算速度はとても速い。

反面、近年のインターネット通信の転送速度は早くなってきたが、モバイル環境では遅い。

圧縮を2倍にすれば、転送時間が半分になる。

nginx.conf で zip on

				
					##
        # Gzip Settings
        ##

        gzip on;

        # gzip_vary on;
        # gzip_proxied any;
        # gzip_comp_level 6;
        # gzip_buffers 16 8k;
        # gzip_http_version 1.1;
        # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
				
			

debian の場合 Nginx設定ファイルは、

/etc/nginx/nginx.conf

zip on の記述の コメントアウト # を削除して

				
					 ##
        # Gzip Settings
        ##

        gzip on;

         gzip_vary on;
         gzip_proxied any;
         gzip_comp_level 6;
         gzip_buffers 16 8k;
         gzip_http_version 1.1;
         gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
				
			

gzip_comp_level が 6 で 17.4% くらいまで圧縮される。

まあ、level 1 でも20% くらいなので、効果を考えれば、レベル1でも良いのかもしれない。

設定ファイルを書き換えたら

設定ファイル nginx.conf の zip 部分の# の削除がすんだら

nginx -t

設定ファイルに間違いがないか確かめる。

				
					nginx -t
				
			

nginx の設定を反映

nginx を再起動して設定の反映をさせる。

				
					systemctl restart nginx.service
				
			

効果は、7倍程度高速になった

簡単な効果判定だが、

apach bench  ab で速度計測を行った。

考えるのが面倒なので、

ab のパラメーター
-n 100 : 総リクエスト数
-c 100 : 同時リクエスト数

同時に100リクエストされた場合とした。

zip off

				
					 %  ab -n 100 -c 100 https://blog.i-mndks.info/
 
Server Software:        nginx/1.22.1
Server Hostname:        blog.i-mndks.info
Server Port:            443
SSL/TLS Protocol:       TLSv1.2,ECDHE-ECDSA-AES256-GCM-SHA384,256,256
Server Temp Key:        ECDH X25519 253 bits
TLS Server Name:        blog.i-mndks.info

Document Path:          /
Document Length:        130009 bytes

Concurrency Level:      100
Time taken for tests:   2.977 seconds
Complete requests:      100
Failed requests:        0
Total transferred:      13040700 bytes
HTML transferred:       13000900 bytes
Requests per second:    33.59 [#/sec] (mean)
Time per request:       2976.713 [ms] (mean)
Time per request:       29.767 [ms] (mean, across all concurrent requests)
Transfer rate:          4278.23 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        5  215  22.4    214     237
Processing:    90 1399 758.3   1397    2639
Waiting:       89 1393 762.1   1395    2637
Total:        305 1614 765.2   1611    2876

Percentage of the requests served within a certain time (ms)
  50%   1611
  66%   2045
  75%   2286
  80%   2407
  90%   2666
  95%   2796
  98%   2863
  99%   2876
 100%   2876 (longest request)
				
			

100アクセスを完了するのに、Time taken for tests: 2.977 seconds

約3秒程度の時間がかかった。

zip on

				
					 %  ab -n 100 -c 100 https://blog.i-mndks.info/
 
Server Software:        nginx/1.22.1
Server Hostname:        blog.i-mndks.info
Server Port:            443
SSL/TLS Protocol:       TLSv1.2,ECDHE-ECDSA-AES256-GCM-SHA384,256,256
Server Temp Key:        ECDH X25519 253 bits
TLS Server Name:        blog.i-mndks.info

Document Path:          /
Document Length:        130009 bytes

Concurrency Level:      100
Time taken for tests:   0.416 seconds
Complete requests:      100
Failed requests:        0
Total transferred:      13040700 bytes
HTML transferred:       13000900 bytes
Requests per second:    240.19 [#/sec] (mean)
Time per request:       416.340 [ms] (mean)
Time per request:       4.163 [ms] (mean, across all concurrent requests)
Transfer rate:          30588.12 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       44  236  23.9    233     290
Processing:    76  120  23.6    118     327
Waiting:        2   36  10.8     33      66
Total:        350  356   5.7    354     371

Percentage of the requests served within a certain time (ms)
  50%    354
  66%    359
  75%    360
  80%    361
  90%    366
  95%    367
  98%    367
  99%    371
 100%    371 (longest request)
				
			

100アクセスを完了するのに、

Time taken for tests:

  • zip off 2.977 seconds
  • zip on  0.416 seconds

約7倍程度 高速になった。

Nginxでgzip圧縮を有効にして表示速度を7倍高速に

コメントを残す

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

関連コンテンツ

open ssl

ローカルCA Nginx テスト用

ローカル内のウエブサーバーNginxを簡単に暗号化して https 通信できるようにしたい。簡単な方法。

torbo

Lighthouse でページ表示速度を測定

Lighthouse」は、Googleが開発したオープンソースのWebサイト監査ツールです。Webページのパフォーマンス、アクセシビリティ、SEO、ベストプラクティスなどを評価し、改善点をレポートとして提供します。

torbo

PageSpeed Insights でページ表示速度を測定

PageSpeed Insights(ページスピードインサイト)は、Googleが提供する無料のウェブツールで、ウェブサイトの表示速度を測定し、改善点を見つけるのに役立ちます。

最近の記事

Nginxでgzip圧縮を有効にして表示速度を7倍高速に