Nginx的Gzip介紹之壓縮和解壓縮

2021-09-29 20:33:39 字數 2045 閱讀 2634

本節介紹如何配置響應的壓縮或解壓縮以及如何傳送壓縮檔案。

壓縮響應通常會大大減少傳輸資料的大小。但是,由於壓縮是在執行時發生的,因此還會增加大量的處理開銷,這可能會對效能產生負面影響。nginx在將響應傳送給客戶端之前執行壓縮,但不會「雙重壓縮」已壓縮的響應(例如,由**伺服器進行的響應)。

要啟用壓縮,請在gzip指令中包含on引數。

gzip  on;

預設情況下,nginx僅壓縮mime型別的響應text/html。要壓縮其他mime型別的響應,請包含gzip_types指令並列出其他型別。

要指定要壓縮的響應的最小長度,請使用gzip_min_length指令。預設值為20位元組(此處調整為1000):

gzip_min_length  1000;

預設情況下,nginx不壓縮對**請求的響應(來自**伺服器的請求)。請求來自**伺服器的事實取決於請求中標via頭字段的存在。要配置這些響應的壓縮,請使用gzip_proxied指令。該指令具有許多引數,用於指定nginx應該壓縮哪些**請求。例如,合理的做法是僅壓縮對不會快取在**伺服器上的請求的響應。為此目的,該gzip_proxied指令有引數請示nginx檢查cache-control報頭欄位中的響應,並且如果該值是壓縮的響應no-cacheno-storeprivate。此外,您必須包含expired引數以檢查expires標頭字段。在下面的示例中,將設定這些引數以及auth用於檢查authorization標頭字段是否存在的引數(授權響應是特定於終端使用者的,通常不會快取):

gzip_proxied no-cache no-store private expired auth;

與大多數其他指令一樣,配置壓縮的指令可以包含在http上下文中serverlocation配置塊中。

gzip壓縮的整體配置可能如下所示。

server

某些客戶端不支援gzip編碼方法的響應。同時,可能希望儲存壓縮的資料,或者動態壓縮響應並將其儲存在快取中。為了成功服務接受和不接受壓縮資料的兩個客戶端,nginx可以在將資料傳送到後一種型別的客戶端時動態地對資料進行解壓縮。

要啟用執行時解壓縮,請使用gunzip指令。

location /storage/

gunzip指令可以在相同的上下文中指定gzip的指令:

server

請注意,此指令是在單獨的模組中定義的,預設情況下可能未包含在nginx開源構建中。

要將檔案的壓縮版本(而不是常規檔案)傳送到客戶端,請將gzip_static指令設定on為適當的上下文。

location /

在這種情況下,為了滿足對/ path / to / file的請求,nginx嘗試查詢並傳送檔案/path/to/file.gz。如果該檔案不存在,或者客戶端不支援gzip,則nginx傳送該檔案的未壓縮版本。

請注意,該gzip_static指令不啟用動態壓縮。它僅使用任何壓縮工具預先壓縮的檔案。要在執行時壓縮內容(不僅是靜態內容),請使用gzip指令。

該指令在單獨的模組中定義,預設情況下可能未包含在nginx開源構建中。

Nginx優化之gzip壓縮

gzip配置的常用引數 gzip on off 是否開啟gzip gzip buffers 32 4k 16 8k 緩衝 壓縮在記憶體中緩衝幾塊?每塊多大?gzip comp level 1 9 推薦6 壓縮級別 級別越高,壓的越小,越浪費cpu計算資源 gzip disable 正則匹配ua 什麼...

nginx 開啟gzip壓縮

一 背景介紹 歷史遺留問題,在專案建立初期前端力量薄弱,大部分image js css與業務應用存放在一起,未上傳到cdn中,最終導致 訪問緩慢,經過排查由於靜態資源大量消耗頻寬。接下來介紹通過nginx的gzip對靜態資源進行壓縮,減少頻寬消耗。二 gzip gzip是gnu zip的縮寫,它是乙...

nginx配置gzip壓縮

一 配置引數的詳細介紹 二 大眾的引數配置如下 開啟gzip壓縮 gzip on http的協議版本 ie版本1 6不支援gzip壓縮,關閉 gzip disable msie 1 6 需要壓縮的檔案格式 text html缺省會壓縮,不用新增 設定壓縮緩衝區大小,此處設定為4個8k記憶體作為壓縮結...