Nginx 開啟Gzip 壓縮

為你的網站開啟Gzip 壓縮,有效節省30%流量,提高訪問速度

是網站壓縮的一種技術,對於開啟後可以加快我們網站的開啟速度,原理是經過壓縮,客戶端瀏覽器快速解壓縮的原理,可以大幅減少了網站的流量。

開啟Gzip 壓縮功能, 可以使網站的css、js 、xml、html 文件在傳輸時進行壓縮,提高訪問速度, 進而優化Nginx性能! Web網站上的圖片,視頻等其它多媒體文件以及大文件,因為壓縮效果不好,所以對於圖片沒有必要支壓縮,如果想要優化,可以圖片的生命週期設定長一點,讓客戶端來快取。開啟Gzip 功能後,Nginx伺服器會根據配置的策略對發送的內容, 如css、js、xml、html等靜態資源進行壓縮, 使得這些內容大小減少,在用戶接收到返回內容之前對其進行處理,以壓縮後的資料展現給客戶。這樣不僅可以節省大量的出口頻寬,提高傳輸效率,還能提升用戶快的感知體驗, 一舉兩得; 儘管會消耗一定的cpu資源,但是為了給用戶更好的體驗還是值得的。

Gzip 設定參數

經過後頁面大小可以變成原來的30%甚至更小,這樣,使用者瀏覽頁面的時候速度會快得多。 Gzip 的壓縮頁面需要瀏覽器和伺服器雙方都支持,實際上就是伺服器端壓縮,傳到瀏覽器後瀏覽器解壓縮並解析。瀏覽器那裡不需要我們擔心,因為目前的巨大多數瀏覽器都支援解析Gzip過的頁面。

Gzip壓縮作用:將回應封包⽂發送⾄客戶端之前可以啟動⽤壓縮功能,這能夠有效地節約頻寬,並提⾼回應⾄客戶端的速度。 Gzip壓縮可以設定http,server和location模組下。 Nginx開啟Gzip壓縮設定參數說明:

gzip on; #是否開啟gzip模組on表示開啟off表示關閉gzip_buffers 4 16k; #設定壓縮所需的緩衝區大小gzip_comp_level 6; #壓縮等級1-9,數字越大壓縮的越好,也佔用CPU時間gzip_min_length 1k; #設定允許壓縮的最小位元組gzip_http_version 1.1; #設定壓縮http協定的版本,預設是1.1 gzip_types text/plain application/javascript application/x-javascript text/css appli httpd-php image/jpeg image/gif image/png application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml; #設定壓縮的檔案類型gzip_vary on; #加上http頭檔訊息Vary: Accept-Encoding給予後端代理伺服器識別是否啟用gzip 壓縮gzip_disable "MSIE [1-6]\."; #配置停用gzip條件,支援正規。此處表示ie6及以下不啟用gzip(因為ie低版本不支援) gzip_proxied off; #nginx做為反向代理時啟用,off(關閉所有代理結果的資料的壓縮),expired(啟用壓縮,如果header頭中包括"Expires"頭資訊),no-cache(啟用壓縮,header頭中包含"Cache-Control:no-cache"),
no-store(啟用壓縮,header頭中包含"Cache-Control:no-store"),private(啟用壓縮,header頭中包含"Cache-Control:private"),no_last_modefied(啟用壓縮,header頭中不包含
"Last-Modified"),no_etag(啟用壓縮,如果header頭中不包含"Etag"頭資訊),auth(啟用壓縮,如果header頭中包含"Authorization"頭資訊)

編輯nginx設定檔

[root@uzbox ~]# vim /usr/local/nginx/conf.d/www.conf http { gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_gip_level 9; ]\."; gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png application/vnd.ms-fontobject image/gif /ttf font/opentype font/x-woff image/svg+xml; }

重載設定檔

systemctl reload nginx

 

偵測Gzip 是否開啟

[root@uzbox ~]# curl -I -H"Accept-Encoding: gzip, deflate" "https://uzbox.com" HTTP/2 200 server: nginx/1.18.0 date: Wed, 30 Nov 2022 05: 19:05 GMT content-type: text/html; charset=UTF-8 content-length: 40429 x-powered-by: PHP/7.4.19 vary: Accept-Encoding, Cookie cache-control: max-age=3, must-revalidate content-encoding: gzip last-modified: Wed, 30 Nov 2022 04:27:54 GMT strict-transport-security: max-age=31536000

如上,response header頭資訊中出現”Conten_Encoding: gzip” , 就說明Nginx已開啟了壓縮(在瀏覽器訪問, 透過F12看請求的回應頭也是一樣)

Nginx開啟Gzip 壓縮功能後, 定義的gzip type的檔案在傳輸時的大小明顯變小, 這樣這會大大提高nginx存取性能.

網頁GZIP 壓縮偵測

透過下面網站可以偵測Gzip壓縮情況。

https://tool.chinaz.com/gzips/

評分

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *