怎樣開啟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.css 和 style.css.gz,會優先發送 style.css.gz 文件。