Nginx gzip壓縮 expires快取時間

2021-07-30 01:38:01 字數 1313 閱讀 8830

原理:

瀏覽器---請求----> 宣告可以接受 gzip壓縮 或 deflate壓縮 或compress 或 sdch壓縮

從http協議的角度看--請求頭 宣告 acceopt-encoding: gzip deflate sdch (是指壓縮演算法,其中sdch是google倡導的一種壓縮方式,目前支援的伺服器尚不多)

伺服器-->回應---把內容用gzip方式壓縮---->發給瀏覽器

瀏覽<-----解碼gzip-----接收gzip壓縮內容----

gzip配置的常用引數

gzip on|off;  #是否開啟gzip

gzip_buffers 32 4k| 16 8k #緩衝(壓縮在記憶體中緩衝幾塊? 每塊多大?)

gzip_comp_level [1-9] #推薦6 壓縮級別(級別越高,壓的越小,越浪費cpu計算資源)

gzip_disable #正則匹配ua 什麼樣的uri不進行gzip

gzip_min_length 200 # 開始壓縮的最小長度(再小就不要壓縮了,意義不在)

gzip_http_version 1.0|1.1 # 開始壓縮的http協議版本(可以不設定,目前幾乎全是1.1協議)

gzip_proxied          # 設定請求者**伺服器,該如何快取內容

gzip_vary on|off  # 是否傳輸gzip壓縮標誌

注意:

/***這樣的二進位制檔案,不必壓縮

因為壓縮率比較小, 比如100->80位元組,而且壓縮也是耗費cpu資源的.

比較小的檔案不必壓縮,

expires 快取時間設定

可以, 用到 nginx的expires設定 .

nginx中設定過期時間,非常簡單,

在location或if段裡,來寫.

格式  expires 30s;

expires 30m;

expires 2h;

expires 30d;

(注意:伺服器的日期要準確,如果伺服器的日期落後於實際日期,可能導致快取失效)

另: 304 也是一種很好的快取手段

原理是: 伺服器響應檔案內容是,同時響應etag標籤(內容的簽名,內容一變,他也變), 和 last_modified_since 2個標籤值

瀏覽器下次去請求時,頭資訊傳送這兩個標籤, 伺服器檢測檔案有沒有發生變化,如無,直接頭資訊返回 etag,last_modified_since

瀏覽器知道內容無改變,於是直接呼叫本地快取.

這個過程,也請求了伺服器,但是傳著的內容極少.

對於變化週期較短的,如靜態html,js,css,比較適於用這個方式

nginx gzip壓縮 相關配置,

網頁內容的壓縮編碼與傳輸速度優化 我們觀察news.163.com的頭資訊 請求 accept encoding gzip,deflate,sdch 響應 content encoding gzip content length 36093 再把頁面另存下來,觀察,約10w位元組,實際傳輸的3609...

Nginx gzip壓縮提公升效能

gzip是gnuzip的縮寫,最早用於unix系統的檔案壓縮。http協議上的gzip編碼是一種用來改進web應用程式效能的技術,web伺服器和客戶端 瀏覽器 必須共同支援gzip。目前主流的瀏覽器,chrome,firefox,ie等都支援該協議。常見的伺服器如apache,nginx,iis同樣...

配置Nginx gzip壓縮功能

配置nginx gzip壓縮功能 提供了對檔案內容壓縮的功能,允許將輸出內容在傳送到客戶端之前根據具體的策略壓縮節約貸頻寬。功能同apache的mod deflate壓縮功能。依賴ngx http gzip module模組。預設已安裝 網頁壓縮是一項由 web 伺服器和瀏覽器之間共同遵守的協議,也...