Nginx基于gzip壓縮提高訪問速度
一.為什么nginx要使用gzip
1,壓縮的作用:
頁(yè)面使用gzip壓縮之后,
頁(yè)面大小可以壓縮到原來的1/7左右,
傳輸速度和頁(yè)面打開時(shí)間都可以大幅度提高,
有利于用戶訪問頁(yè)面體驗(yàn)的提升
2,Nginx實(shí)現(xiàn)gzip壓縮的原理:
通過ngx_http_gzip_module模塊攔截請(qǐng)求,
并對(duì)需要做gzip的類型做gzip壓縮
3, ngx_http_gzip_module是Nginx默認(rèn)集成的,
不需要重新編譯,直接開啟即可
源碼:https://github.com/liuhongdi/
二.gzip模塊使用例子
gzip on; gzip_min_length 1k; gzip_disable "MSIE [1-6]\."; gzip_comp_level 5; gzip_types text/css text/javascript text/xml text/plain application/json application/javascript application/x-javascript application/xml application/xml+rss; gzip_http_version 1.1;
各個(gè)指令的說明:
gzip on;
開啟gzip模式,
默認(rèn)值是off,就是不啟用gzip壓縮功能
當(dāng)然是要把它設(shè)置為on了
gzip_min_length 1k;
設(shè)置允許壓縮的頁(yè)面最小字節(jié)數(shù),頁(yè)面字節(jié)數(shù)從header頭中的Content-Length中進(jìn)行獲取。
太小的文件內(nèi)容壓縮之后效果不明顯,甚至?xí)炔粔嚎s時(shí)更大。
默認(rèn)值是20,這個(gè)值過小,
一般設(shè)置為長(zhǎng)度不小于1k
gzip_disable
IE6對(duì)Gzip支持效果較差,所以針對(duì)它不啟用
gzip_comp_level :
gzip 壓縮級(jí)別,1-9,
數(shù)字越大壓縮的比例越高,但也越占用CPU時(shí)間
它的默認(rèn)值是1,通常會(huì)設(shè)置為5或6
如果cpu占用高,設(shè)置為2或3也可以
gzip_http_version :
設(shè)置gzip壓縮所支持的最小HTTP版本,
如果低于該版本不使用gzip壓縮。
默認(rèn)值是1.1
一般使用1.1。
gzip_types :
針對(duì)哪些類型的頁(yè)面才啟用gzip壓縮,有多個(gè)值則用空格分隔。
通配符*可以匹配任意類型,但不要用這個(gè)值。
只有js/css/html/text這幾類內(nèi)容壓縮才有明顯的效果,
圖片和視頻等本身經(jīng)過壓縮算法處理過的文件啟用壓縮也沒有明顯效果。
1,不管是否指定text/html類型,該類型的響應(yīng)總是啟用壓縮,
所以這個(gè)值可以不用寫上
2,這些文件類型對(duì)應(yīng)的mime-type可以參考nginx/conf/mime.types文件
3,常用的9個(gè)值:
text/css text/javascript text/xml text/plain
application/json application/javascript application/x-javascript
application/xml application/xml+rss
三.例子中未用到的其他設(shè)置項(xiàng):
gzip_buffers 4 16k;
gzip_vary on;
gzip_proxied any;
gzip_vary:
vary header支持,
on的話會(huì)在Header里增加"Vary: Accept-Encoding"
這個(gè)值可以讓前端的緩存服務(wù)器緩存經(jīng)過GZIP壓縮的頁(yè)面,
例如用Squid緩存經(jīng)過nginx壓縮的數(shù)據(jù)
如果在nginx前端使用了squid或varnish,
可以設(shè)置此值為on
gzip_proxied
nginx 做前端代理時(shí)啟用該選項(xiàng),
如果值是 any, 表示無論后端服務(wù)器的headers頭返回什么信息,
都無條件啟用壓縮
如果用了nginx作反向代理,
設(shè)置此值為any
gzip_buffers:
設(shè)置用于處理壓縮的緩沖區(qū)大小。
默認(rèn)值:32 4k|16 8k
32 4k代表以4k為單位將響應(yīng)數(shù)據(jù)以4k的32倍(128k)的大小申請(qǐng)內(nèi)存。
建議此項(xiàng)不設(shè)置,使用默認(rèn)值
四.查看gzip的壓縮效果
1,使用curl查看
#-I, --head Show document info only 只顯示頭信息
#-H,--header LINE: Pass custom header LINE to server (H) 自定義請(qǐng)求頭的信息
[root@localhost curl]# curl -I -H "Accept-Encoding: gzip, deflate" http://www.lhdtest.net HTTP/1.1 200 OK Server: openresty Date: Mon, 27 Apr 2020 07:59:38 GMT Content-Type: text/html; charset=utf-8 Connection: keep-alive Vary: Accept-Encoding Set-Cookie: SESSID_WEB=0ks2eh03vmv4dhje29ggojl1bs; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate Pragma: no-cache Content-Encoding: gzip
說明:看到Conten_Encoding: gzip則表示gzip壓縮已生效
2,通過瀏覽器查看效果
從瀏覽器端響應(yīng)頭信息看gzip是否生效:
看截圖:壓縮前和壓縮后的效果對(duì)比:
壓縮前:
壓縮后:
說明:我使用的是firefox的web控制臺(tái),大家也可用yslow之類的插件試試
五.查看nginx的版本:
[root@centos8 soft]# /usr/local/soft/nginx-1.18.0/sbin/nginx -v nginx version: nginx/1.18.0
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
淺析nginx剛剛發(fā)布的JavaScript能力nginScript
Nginx [engine x]是全球最受歡迎,也是最優(yōu)秀的web服務(wù)器、反向代理服務(wù)器。nginScript是JavaScript/ECMAscript的子集,nginScript不是通過V8引擎實(shí)現(xiàn)的。本文給大家介紹nginx剛剛發(fā)布的JavaScript能力nginScript,感興趣的朋友跟著小編一起了解了解吧2015-09-09nginx部署后css、js、圖片等樣式不加載問題的兩種解決方案
這篇文章主要介紹了nginx部署后css、js、圖片等樣式不加載問題的兩種解決方案,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-12-12使用nginx正向代理實(shí)現(xiàn)內(nèi)網(wǎng)域名轉(zhuǎn)發(fā)過程解析
這篇文章主要介紹了使用nginx正向代理實(shí)現(xiàn)內(nèi)網(wǎng)域名轉(zhuǎn)發(fā)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08Nginx動(dòng)靜分離配置實(shí)現(xiàn)與說明
這篇文章主要介紹了Nginx動(dòng)靜分離配置實(shí)現(xiàn)與說明,需要的朋友可以參考下2022-04-04nginx設(shè)置上傳目錄無執(zhí)行權(quán)限的方法
在windows+iis下,可以設(shè)置上傳目錄,類似:upload,uploadfile,attachments,這樣的目錄下面無腳本執(zhí)行權(quán)限,從而防止非法用戶上傳腳本得到webshell2010-11-11Nginx通過用戶IP獲取所在國(guó)家及地理位置的實(shí)現(xiàn)方法
Nginx是一款高性能、輕量級(jí)的Web服務(wù)器和反向代理服務(wù)器,今天講解Nginx十分常用的功能之一,通過IP獲取用戶所在的國(guó)家,一般廣泛應(yīng)用在各類需要定位的網(wǎng)站上面,來定位用戶首次訪問的國(guó)家,通過IP解析庫(kù)GeoLite2-Country來實(shí)現(xiàn)功能,需要的朋友可以參考下2023-10-10Nginx下實(shí)現(xiàn)pathinfo及ThinkPHP的URL模式
本篇文章主要介紹了Nginx下實(shí)現(xiàn)pathinfo及ThinkPHP的URL模式。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05