2017-02-11

為 Apache 啟用 Brotli 網頁壓縮技術

在伺服器上,我並不是 Windows 愛用者…所以,雖然前篇我談了 IIS 8.5 + Brotli 的啟用,但現在就要來講講在 Linux + Apache 上啟用 Brotli

先當作已經有 Linux ,也用好了 Apache 了…

事前準備:

  1. 環境建置 (因為我有兩台伺服器)
    1. CentOS 7.3.1611 x64 + Apache 2.4.6 built 2016/11/14
    2. CentOS 6.8 (final) + Apache 2.2.15 built 2017/01/12
  2. kjdev/apache-mod-brotli

為 IIS 8.5 啟用 Brotli 網頁壓縮技術

前一篇我小談了 Brotli 網頁壓縮的看法,現在當然就只要試玩啦…

本篇以 Windows server 2012 R2 + IIS 8.5 的環境來測試,所以,2012 R2 怎麼安裝、 IIS 8.5 怎麼安裝的我就不講了…網路上就有教學,但 IIS 8.5 在安裝的時候要留意,記得要安裝「靜態、動態網頁資料壓縮的功能」,不然到時沒用途不要怪我…

事前準備:

  1. 環境建置:Windows server 2012 R2 + IIS 8.5
  2. IIS Brotli 1.1.1 32/64 bit dll (網址)(2017/02/11 查看時還是 1.1.1),載好後就解壓至你設定好的資料夾存放,假設我放的是在 C:\BrotliForIIS\brotli\1.1.1\

小談 google brotli 網頁壓縮

先介紹什麼是 Brotli 網頁壓縮技術…請看 wiki

以開發跟推出時間來時間,其實不算長…可是對流量傳輸來說倒是真的有加分…

一般來說,在 Brotli 推出之前,大部份網頁的壓縮技術是 gzip, deflate ,以 gzip 為主流…以 compression level 開到 10 來說, text/html, text/palin, text/css 或 js 經過壓縮後,傳輸的大小約為原始檔案的 3/10 ,100K 的 html 檔,實際傳輸約是 30K …

而 Brotli 在靜態文字檔的壓縮,一樣以 level 10 來說,大約是 2/10 …不要小看這 10% ,因為壓縮不但是縮小了大小,也縮短了時間…

請看最近的一則新聞「Google實習生立大功!她的專案每天為Android用戶省下1.5PB資料傳輸量

-----

不過呢,也不用想說這是萬靈藥…為什麼?
天下沒有白吃的飯,以目前普遍的壓縮方式,大多是吃 cpu 的,也就是說,如果用來跑網頁服務的機器的 cpu 等級沒有多好,或者也不是多核多緒,我建議還是不要開壓縮,或者把 compression level 降低比較好…(不過,現在就算不是拿伺服器架站,桌機等級的 cpu 也沒有多弱,當然,請找多核心的)
當然,這我只是建議啦,這年頭很多東西都講原生支援,很多東西只要原生支援後,都可以省更多的效能,這在網路設備上很常見…所以,哪天 brotli 的方式以原生指令集活在 cpu 中,就算用單核可能所花的資源也不會覺得多,只是,這東西再怎麼省都是要秏 cpu 的…

-----

優點:

  • 更高的壓縮率代表節省更多的傳輸資源與時間
  • 只支援 https 協定,強迫網站安全性?(抱歉,我這個只是單純以為算優點)
缺點:

  • 更高的壓縮率代表有「可能」更需要 cpu 的效能
  • 只支援 https 協定,強迫網站安全性?(跟優點一樣?因為要跑 https 要花時間找憑證或更新憑證…很煩)