nginx如何開通gzip壓縮傳輸文件
一、簡介
gzip是一種改進(jìn)web應(yīng)用程序性能的技術(shù),文件壓縮后再傳輸可以減少傳輸數(shù)據(jù),提升傳輸速度。
在Nginx服務(wù)器上開啟Gzip壓縮可以有效減少網(wǎng)絡(luò)傳輸流量,提升網(wǎng)站性能。
是否支持gzip
服務(wù)端將響應(yīng)頭設(shè)置上 Content-encoding: gzip,表示當(dāng)前資源會(huì)使用 gzip 壓縮,提示客戶端解壓使用。
當(dāng)然前提是客戶端支持該壓縮算法,服務(wù)端會(huì)通過客戶端發(fā)送的請求頭中的 Accept-Encoding 字段來確定是否支持。
什么樣的數(shù)據(jù)需要用Gzip壓縮
Gzip壓縮適用于文本文件類型,特別是那些具有較高的重復(fù)性和冗余性的文件:
- HTML文件:HTML文件通常包含大量的標(biāo)記和文本內(nèi)容,其中有很多重復(fù)的標(biāo)簽和文本片段。通過對(duì)HTML文件進(jìn)行Gzip壓縮,可以大大減少文件大小,提高傳輸效率。
- CSS文件:CSS文件包含了網(wǎng)頁的樣式信息,其中包括選擇器、屬性和值等。由于CSS文件通常較大,并且具有大量的重復(fù)內(nèi)容,使用Gzip壓縮可以顯著減小文件大小。
- JavaScript文件:JavaScript文件包含了網(wǎng)頁的交互邏輯和功能代碼。JavaScript文件通常較大,通過Gzip壓縮可以減少文件大小,提高加載速度。
- JSON文件:JSON是一種常用的數(shù)據(jù)交換格式,用于在客戶端和服務(wù)器之間傳輸數(shù)據(jù)。由于JSON文件通常包含大量的文本數(shù)據(jù),使用Gzip壓縮可以減少數(shù)據(jù)傳輸量,提高傳輸效率。
- XML文件:XML文件用于存儲(chǔ)和傳輸結(jié)構(gòu)化數(shù)據(jù),其中包含了標(biāo)簽、屬性和文本內(nèi)容。通過對(duì)XML文件進(jìn)行Gzip壓縮,可以減少文件大小,提高傳輸速度。
對(duì)于已經(jīng)經(jīng)過壓縮的文件(如圖片、音視頻文件等),再次使用Gzip壓縮通常不會(huì)帶來顯著的效果,甚至可能導(dǎo)致壓縮后的文件更大。
二、Nginx服務(wù)器配置
2.1 安裝和配置Nginx服務(wù)器
sudo apt-get update sudo apt-get install nginx
2.2 開啟Gzip模塊
在Nginx配置文件中的http塊內(nèi)添加以下內(nèi)容:
http { gzip on; gzip_types text/plain application/javascript; }
這里的gzip on表示開啟gzip壓縮,gzip_types指定需要進(jìn)行壓縮的文件類型,例如text/plain表示純文本文件,application/javascript表示JavaScript文件。
三、Gzip壓縮配置
3.1 壓縮文件類型配置
gzip_types用于指定需要進(jìn)行壓縮的文件類型,例如text/html表示HTML文件,text/css表示CSS文件,application/json表示JSON文件。
gzip_vary on表示在響應(yīng)頭中添加Vary字段,用于緩存服務(wù)器根據(jù)Accept-Encoding字段進(jìn)行緩存策略的選擇。
http { gzip_types text/html text/css application/json; gzip_vary on; }
3.2 壓縮級(jí)別配置
gzip_comp_level用于指定壓縮級(jí)別,取值范圍為1-9,級(jí)別越高壓縮比越大,但壓縮時(shí)間也會(huì)增加。
http { gzip_comp_level 5; }
3.3 壓縮緩沖配置
gzip_buffers用于指定壓縮時(shí)使用的緩沖區(qū)數(shù)量和大小,這里的配置表示使用16個(gè)緩沖區(qū),每個(gè)緩沖區(qū)大小為8KB。
gzip_disable用于指定不使用gzip壓縮的瀏覽器,這里的配置表示禁止對(duì)IE6及以下版本進(jìn)行壓縮。
http { gzip_buffers 16 8k; gzip_disable "MSIE [1-6]\.(?!.*SV1)"; }
四、Gzip壓縮效果驗(yàn)證
開啟gzip壓縮后,可以通過瀏覽器的開發(fā)者工具來驗(yàn)證壓縮效果。
打開開發(fā)者工具的Network選項(xiàng)卡,選擇一個(gè)請求并查看其響應(yīng)頭,如果響應(yīng)頭中包含Content-Encoding: gzip,則表示該資源已經(jīng)使用gzip進(jìn)行了壓縮。
- 開啟前
- 開啟后
總結(jié)
文件大小縮小了一倍多,效果非常明顯
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
LNMP 解決Access Denied錯(cuò)誤詳細(xì)介紹
這篇文章主要介紹了LNMP 解決Access Denied錯(cuò)誤詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2016-10-10詳解Nginx 動(dòng)態(tài) DNS 反向代理的幾種寫法
這篇文章主要介紹了詳解Nginx 動(dòng)態(tài) DNS 反向代理的幾種寫法,詳細(xì)的介紹了Nginx 動(dòng)態(tài) DNS 反向代理的4種方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-05-05Nginx服務(wù)器實(shí)現(xiàn)通過ip和user_gent限制訪問的方法分析
這篇文章主要介紹了Nginx服務(wù)器實(shí)現(xiàn)通過ip和user_gent限制訪問的方法,結(jié)合實(shí)例形式分析了Nginx通過限制ip和user_gent限制訪問來過濾DDOS攻擊的相關(guān)操作技巧,需要的朋友可以參考下2019-07-07windows系統(tǒng)下關(guān)閉Nignx的多種方式總結(jié)
這篇文章主要給大家總結(jié)介紹了windows系統(tǒng)下關(guān)閉Nignx的多種方式, 在Windows中啟動(dòng)Nginx是簡單的,但有許多小伙伴不會(huì)關(guān)閉,這里給大家介紹下,需要的朋友可以參考下2023-08-08Nginx配置統(tǒng)計(jì)流量帶寬請求及記錄實(shí)時(shí)請求狀態(tài)的方法
這篇文章主要介紹了Nginx中配置統(tǒng)計(jì)流量帶寬請求及記錄實(shí)時(shí)請求狀態(tài)的方法,分別用到了ngx_req_status和ngx_realtime_request模塊,需要的朋友可以參考下2016-01-01Nginx upstream的5種權(quán)重分配方式分享
Nginx upstream的5種權(quán)重分配方式分享,需要的朋友可以參考下2012-09-09Nginx多ip部署多站點(diǎn)的實(shí)現(xiàn)步驟
使用Nginx在具有多個(gè)IP地址的服務(wù)器上部署多個(gè)站點(diǎn),從而實(shí)現(xiàn)高效、安全的網(wǎng)站托管,本文主要介紹了Nginx多ip部署多站點(diǎn)的實(shí)現(xiàn)步驟,感興趣的可以了解一下2024-01-01Nginx一個(gè)IP如何配置多個(gè)站點(diǎn)的方法教程
這篇文章主要給大家介紹了關(guān)于Nginx一個(gè)IP如何配置多個(gè)站點(diǎn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09Nginx開啟一個(gè)參數(shù)就能讓你的WEB性能提升3倍的方法
這篇文章主要介紹了Nginx開啟一個(gè)參數(shù)就能讓你的WEB性能提升3倍的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-03-03