隨著nginx的發展,越來越多的網站使用nginx,因此nginx的優化變得越來越重要,今天我們來看看nginx的gzip壓縮到底是怎么壓縮的呢?
gzip(GNU- ZIP)是一種壓縮技術。經過gzip壓縮后頁面大小可以變為原來的30%甚至更小,這樣,用戶瀏覽頁面的時候速度會塊得多。gzip的壓縮頁面需要瀏覽 器和服務器雙方都支持,實際上就是服務器端壓縮,傳到瀏覽器后瀏覽器解壓并解析。瀏覽器那里不需要我們擔心,因為目前的巨大多數瀏覽器都支持解析gzip 過的頁面。
Nginx的壓縮輸出有一組gzip壓縮指令來實現。相關指令位于http{….}兩個大括號之間。
gzip on;
//該指令用于開啟或關閉gzip模塊(on/off)
gzip_min_length 1k;
//設置允許壓縮的頁面最小字節數,頁面字節數從header頭得content-length中進行獲取。默認值是0,不管頁面多大都壓縮。建議設置成大于1k的字節數,小于1k可能會越壓越大。
gzip_buffers 4 16k;
//設置系統獲取幾個單位的緩存用于存儲gzip的壓縮結果數據流。4 16k代表以16k為單位,安裝原始數據大小以16k為單位的4倍申請內存。
gzip_http_version 1.1;
//識別http的協議版本(1.0/1.1)
gzip_comp_level 2;
//gzip壓縮比,1壓縮比最小處理速度最快,9壓縮比最大但處理速度最慢(傳輸快但比較消耗cpu)
gzip_types text/plain application/x-javascript text/css application/xml
//匹配mime類型進行壓縮,無論是否指定,”text/html”類型總是會被壓縮的。
gzip_vary on;
//和http頭有關系,加個vary頭,給代理服務器用的,有的瀏覽器支持壓縮,有的不支持,所以避免浪費不支持的也壓縮,所以根據客戶端的HTTP頭來判斷,是否需要壓縮
nginx 配置gzip段如下:
gzip on;
gzip_min_length 1k;
gzip_buffers 16 64k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;