怎樣開啟Nginx gzip壓縮靜態文件?

最近更新時間 2020-01-10 23:25:29

Gzip 是一種壓縮文件格式,gzip 模塊在 nginx 裏面經常用到,壓縮響應的數據,這通常有助於將傳輸數據的大小減少一半甚至更多。可以讓網站更為流暢。

Gzip 的基礎是 DEFLATE,DEFLATE 是 LZ77 與哈夫曼編碼的一個組合體。DEFLATE 最初是作為 LZW 以及其它受專利保護的數據壓縮算法的替代版本而設計的,當時那些專利限制了 compress 以及其它一些流行的歸檔工具的應用。

開啟 gzip 壓縮

http {

 gzip on;

}

修改配置文件,重啟 Nginx 後刷新頁面,如果在服務器返回頭部有如下信息表示開啟成功,刷新頁面後如果沒有如下信息,可能是文件太小沒有啟動壓縮,這個參數可以設置,在後面介紹。

Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html

 完整參數介紹:

gzip on;
默認:關閉。開啟或關閉 gzip 壓縮。
gzip_buffers 16 8k;
置系統獲取幾個單位的緩存用於存儲 gzip 的壓縮結果數據流。32 4k 代表以 4k 為單位,安裝原始數據大小以 4k 為單位的 32 倍申請內存。
gzip_comp_level 1
設置gzip的壓縮級別,取值[1-9],數值越大壓縮率越高,壓縮時消耗的資源越多,通常合理取值是4-6。
gzip_disable "MSIE [4-6]\."
將 "User-Agent" 請求頭進行正則匹配,滿足正則的請求對其響應時不啟用 gzip 壓縮,通常用來去除 ie6 等對 gzip 壓縮支持不是很好的瀏覽器的 gzip 壓縮。
gzip_http_version 1.1
設置 gzip 的壓縮級別,取值[1-9],數值越大壓縮率越高,壓縮時消耗的資源越多,通常合理取值是4-6。
gzip_comp_level 1
默認:gzip_comp_level 1。設置gzip的壓縮級別,取值 [1-9],數值越大壓縮率越高,壓縮時消耗的資源越多,通常合理取值是 4-6。
gzip_min_length 20
啟用 gizp 壓縮的響應臨界值大小,僅與響應頭的 "Content-Length" 的值進行比較,只有大於 gzip_min_length 的響應才會進行壓縮,比較合理的值是 1000。
gzip_proxied off
根據請求和響應,啟用或禁用壓縮代理請求的響應。
gzip_types text/html
指定需要壓縮的響應內容類型,例如text/css application/javascript application/json application/xml分別表示對css js json xml進行壓縮,多個用空格分開,*表示所有。注意:text/html類型總會被壓縮,不需要顯式的指定。
gzip_vary off
表示是否添加 "Vary: Accept-Encoding" 響應頭。

設置某個路徑下壓縮

location /storage/ {
 gunzip on;
 ...
}

直接發送壓縮的文件

location / {
 gzip_static on;
}

如果配置文件中開啟 gzip_static on; 服務器會優先發送已經壓縮過的 .gz 文件,前提是需要先使用 gzip 工具壓縮同名的 .gz 文件,比如目錄下同時存在 style.cssstyle.css.gz,會優先發送 style.css.gz 文件。 

rss_feed