2020 年 3 月 25 日

IT Skills 波林

Polin WEI – 資訊工作者的技術手札

Spring Boot 啟用 gzip 及 cache 提升網站速度

1 min read
礁溪公園

Spring Boot 啟用 gzip 及 cache 提升網站速度

WordPress 利用 gzip 與外掛提升網站速度 中有提到設定 gzip 壓縮,可以減少在主機與使用者端之間,資料傳輸量的減少,進而提升網站回應的速度,它的方法原則上是利用修改 .htaccess 的設定來達成,而 Spring Boot 是一個非常功能強大且靈活的系統,有很多功能只要透過設定就可以達成,在 gzip 的功能上只要在 application.properties 加上下列設定即可。

# =================================
# GZip compression, HTTP/2, caching 
# =================================
# Enable response compression
server.compression.enabled=true

# The comma-separated list of mime types that should be compressed
server.compression.mime-types=text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json,application/xml

# Compress the response only if the response size is at least 1KB
server.compression.min-response-size=1024

因為在執行 gzip 壓縮時,會增加主機 CPU 的負擔,所以加入 server.compression.min-response-size=1024 來告訴 Spring Boot 說在 1KB 以上才要執行壓縮 ( 預設是 2KB )。

 

  • HTTP/2 啟用

HTTP/2 是用來提升 HTTP1 的協定,HTTP/2 採用了新的演算法來進行編碼,它不會破壞現行程序的工作,但可以藉由新特性得到更好的速度,而這個設定也只要在 application.properties 加上一行設定即可。

# Enable HTTP/2 support, if the current environment supports it
server.http2.enabled=true

若流覽器不支援的話,則會出現 “無法打開網頁,因為網路連線中斷” 的錯誤訊息,如在 iPhone 的 IOS 版本為 12.4.4 ,就有這種情況,而在 IOS 版本為13.1.3 以上就可以正常流覽。如果是這樣的話,就只能升級流覽器的版本或是將 HTTP/2 的啟用暫時停止。

http2_error

 

 

  • 啟用流覽器 ( Browser ) 的暫存 ( Cache ) 功能

這樣可以不用將靜態 ( Static ) 資料重覆的傳送,這樣也可以提升速度。

# Maximum time the response should be cached (in seconds) 
spring.resources.cache.cachecontrol.max-age=120

# The cache must re-validate stale resources with the server. Any expired resources must not be used without re-validating.
spring.resources.cache.cachecontrol.must-revalidate=true

總結來說,Spring Boot 真是一個好的開發架構,可以讓您專注在開發上,而不用費心去設定 HTTP 伺服器上的相關配置。

 

參考: https://www.callicoder.com/configuring-spring-boot-application/

Copyright © All rights reserved. | Newsphere by AF themes.