Nginx的gzip壓縮的原理和設置參數


開啟Nginx gzip壓縮非常簡單,達到的效果可以壓縮靜態文件大小、提高頁面訪問速度、節省流量和帶寬是很有幫助的,也為用戶省去了很多流量;唯一的不足就是開啟之后服務器這邊會增加運算,進行壓縮運算處理,就比如壓縮級別,服務器cpu會有開銷。

原理舉例

比如一個css文件,里面肯定有很多font-size、換行、字體等標簽和內容,這種重復的內容會很多,壓縮的時候它會對重復的字符串進行掃描,它會把這些重復的統計出來,統計出來會排序,排序之后會定義一個詞表,詞表是用來做替換的,就本來比如一個十個字符長度的字符串,它會用兩個長度的字符替換,這樣就變成了原來的五分之一,其他的也是一樣,比如文件里有大量大段的重復內容,這樣壓縮效果會更明顯。這樣簡單的替換就實現了壓縮。越是重復的內容越多,壓縮的效率越高,相反,效率越低。

配置參數

server { listen 80; //監聽端口
   server_name localohst; //監聽域名
   gzip on;  //開啟gzip壓縮
   gzip_min_length 1k; //最小的長度,1K,文件如果太小,小於1K,就不會壓縮,因為沒准壓縮之后還要變大
   gzip_buffers 4 16k;    //設置緩存的單位,壓縮的時候要分配的緩沖區,緩沖區以16K為單位,往緩沖區寫入內容的時候超過16K的時候,那么就會按照4倍的大小創建新的緩沖區,也就是建立一個64K的存儲,這樣把壓縮的內容倒進去
   gzip_comp_level 6;   //壓縮級別1-9,比如level為1的話,壓縮的比例比較低,但是效率比較高,比如100K的文件壓縮之后還剩40K或者50K,但是處理的時間很短;如果level為9的話,壓縮的效果最好,效率會低一點,比如還是100K的文件,壓縮的會更小,甚至20K ,這樣對cpu消耗會高點,一般設置中間差不多
   gzip_type text/plain application/javascript text/css application/xml;  //定義了壓縮的類型,比如文本的,js、css等文本文件壓縮,像是圖片啊,就沒必要定義了,本身就支持,這里就不需要定義了,默認壓縮text/html 不需要指定,否則報錯
   location / { root /var/www/a.com; //根目錄定位
 index index.html; } }


免責聲明!

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



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