Nginx開啟Gzip壓縮功能, 可以使網站的css、js 、xml、html 文件在傳輸時進行壓縮,提高訪問速度, 進而優化Nginx性能! Web網站上的圖片,視頻等其它多媒體文件以及大文件,因為壓縮效果不好,所以對於圖片沒有必要支壓縮,如果想要優化,可以圖片的生命週期設定長一點,讓客戶端來快取。開啟Gzip功能後,Nginx伺服器會根據配置的策略對發送的內容, 如css、js、xml、html等靜態資源進行壓縮, 使得這些內容大小減少,在用戶接收到返回內容之前對其進行處理,以壓縮後的資料展現給客戶。這樣不僅可以節省大量的出口頻寬,提高傳輸效率,還能提升用戶快的感知體驗, 一舉兩得; 儘管會消耗一定的cpu資源,但是為了給用戶更好的體驗還是值得的。
使用Gzip壓縮可以將頁面大小縮小到原來的30%甚至更小,這樣使用者瀏覽頁面的速度會更快。 Gzip 的壓縮頁面需要瀏覽器和伺服器雙方都支持,實際上就是伺服器端壓縮,傳到瀏覽器後瀏覽器解壓縮並解析。目前,我們不必擔心瀏覽器的問題,因為絕大多數的瀏覽器都能夠解析Gzip壓縮過的頁面。
Gzip壓縮作用:將回應報⽂發送⾄客戶端之前可以啟⽤壓縮功能,這能夠有效地節約頻寬,並提⾼回應⾄客戶端的速度。 Gzip壓縮可以設定http,server和location模組下。 Nginx開啟Gzip壓縮參數說明:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
如下是線上常使用的Gzip壓縮設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
如果不開啟Gzip壓縮功能(即註解掉Gzip的相關設定), 查看某個圖片大小
1 2 |
|
如下可知, 檔案沒有被壓縮,檔案傳輸大小還是400多K
如果開啟Nginx的Gzip壓縮功能(即開啟Gzip的相關配置), 然後再次訪問test.bmp圖片, 發現壓縮後的該圖片檔案傳輸大小只有200多K !
透過上面測試對比, 發現Nginx開啟Gzip壓縮功能後, 定義的gzip type的檔案在傳輸時的大小明顯變小, 這樣這會大大提高nginx訪問性能.
直接用curl測試命令:
1 2 3 4 5 6 7 8 9 10 11 |
|
如上, response header頭訊息中出現"Conten_Encoding: gzip" , 就表示Nginx已開啟了壓縮(在瀏覽器存取, 透過F12看請求的回應頭部也是一樣)
#Nginx的Gzip壓縮功能雖然好用,但是下面兩類檔案資源不太建議啟用此壓縮功能。
1) 圖片類型資源(還有影片檔)原因:圖片如jpg、png檔本身就會有壓縮,所以就算開啟gzip後,壓縮前和壓縮後大小沒有太大差別,所以開啟了反而會白白的浪費資源。 (可以試試將一張jpg圖片壓縮為zip,觀察大小並沒有太大的變化。雖然zip和gzip演算法不一樣,但是可以看出壓縮圖片的價值並不大)
2) 大檔案資源原因:會消耗大量的cpu資源,且不一定有明顯的效果。
以上是Nginx效能最佳化之Gzip壓縮的設定方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!