gzip壓縮


https://nginx.org/en/docs/http/ngx_http_gzip_module.html
https://nginx.org/en/docs/http/ngx_http_gunzip_module.html
https://nginx.org/en/docs/http/ngx_http_gzip_static_module.html

原理:

瀏覽器---請求----> 聲明可以接受 gzip壓縮 或 deflate壓縮 或compress 或 sdch壓縮
從http協議的角度看--請求頭 聲明 acceopt-encoding: gzip deflate sdch (是指壓縮算法,其中sdch是google倡導的一種壓縮方式,目前支持的服務器尚不多)
服務器-->回應---把內容用gzip方式壓縮---->發給瀏覽器
瀏覽<-----解碼gzip-----接收gzip壓縮內容----

gzip配置的常用參數

gzip on|off; #是否開啟gzip
gzip_buffers 32 4K| 16 8K #緩沖(壓縮在內存中緩沖幾塊? 每塊多大?)
gzip_comp_level [1-9] #推薦6 壓縮級別(級別越高,壓的越小,越浪費CPU計算資源)
gzip_disable #正則匹配UA 什么樣的Uri不進行gzip
gzip_min_length 200 # 開始壓縮的最小長度(再小就不要壓縮了,意義不在)
gzip_http_version 1.0|1.1 # 開始壓縮的http協議版本(可以不設置,目前幾乎全是1.1協議)
gzip_proxied # 設置請求者代理服務器,該如何緩存內容
gzip_types text/plain application/xml # 對哪些類型的文件用壓縮 如txt,xml,html ,css
gzip_vary on|off # 是否傳輸gzip壓縮標志

注意:
圖片/mp3這樣的二進制文件,不必壓縮
因為壓縮率比較小, 比如100->80字節,而且壓縮也是耗費CPU資源的.
比較小的文件不必壓縮,

擴展nginx壓縮模塊

http_gzip_static_module 預讀gzip功能
http_gunzip_module 應用支持gunzip的壓縮方式

預讀gzip功能是預先在服務器端壓縮文件,gzip命令在nginx.conf中location 開啟預讀壓縮:gzip_static on
gunzip的壓縮方式是為了那些不能使用gzip的瀏覽器解決方案,很少使用

http_gzip_module提供了對gzip的基本的支持,默認是編譯到nginx的發行版本里面的。注意的可以通過gzip_comp_level來制定壓縮的比例,壓縮的體積越小,對cpu的消耗越大。

http_gzip_static_module則是針對nginx serve的靜態文件,需要編譯進去才能有。比如a.html,如果啟用了gzip_static on,如果同一目錄下還有a.html.gz作為a.html壓縮版本存在,那么nginx會以a.html.gz作為a.html的gzip version來serve。這樣,可以采用對cpu消耗更大,但是壓縮效果更好的算法事先壓好.gz文件,而不是讓nginx在訪問的時候現壓縮從而節省cpu。
另外,兩個模塊可以同時編譯進去。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM