日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nginx系列(十七)nginx下的gzip与vary、预压缩、缓存、反向代理的结合

發(fā)布時間:2023/12/9 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nginx系列(十七)nginx下的gzip与vary、预压缩、缓存、反向代理的结合 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言?
在http的協(xié)議里,為了減少網(wǎng)絡傳輸,允許將報文進行gzip壓縮以后再傳輸。雖然網(wǎng)絡傳輸體積減小了,但是服務器壓縮和瀏覽器的解壓縮消耗了CPU的計算。?

后來出現(xiàn)了預壓縮技術,就是提前把靜態(tài)文件進行gzip壓縮,當請求來的時候,直接讀走。這樣服務器就沒了壓縮消耗,而瀏覽器的解壓縮性能相比網(wǎng)絡IO,影響不大。?

一 動態(tài)nginx的gzip?
每次請求來的時候,要實時進行壓縮。但是有個問題,就是壓縮過的文件,要重復壓縮,這樣后面的靜態(tài)壓縮就派上用場了。?

1.靜態(tài)文件壓縮?
每次請求靜態(tài)文件的時候,都會動態(tài)壓縮靜態(tài)文件。?

2.反向代理壓縮?
反向代理返回的報文,也是可以壓縮的。但也是每次動態(tài)壓縮。可以根據(jù)頭信息處理?

3.代理緩存壓縮,瀏覽器緩存?
在做反向代理的時候,可以緩存應用服務器返回的報文,支持緩存首部Cache-Control等。緩存的文件為明文。但是反向代理和壓縮緩存,可以分層來解決。反向代理服務器動態(tài)壓縮,而CDN直接緩存結果(壓縮與非壓縮)。相當于加了2層代理來處理。?

對于瀏覽器,開啟Expire首部,則瀏覽器可以緩存壓縮后的結果,減少服務器請求。?

4.代理的vary首部壓縮?
其實cdn,代理服務器,原理上都是代理服務器。他們一般以url為key值進行緩存。而vary屬性的設置,告訴了代理根據(jù)url緩存的同時,vary的信息也作為key。比如客戶端(瀏覽器)請求的信息里帶上了Accept-Encoding:gzip 則返回壓縮副本。如果沒有帶這個頭信息,默認返回非壓縮副本。?

二 靜態(tài)nginx的gzip:預壓縮?
對于靜態(tài)文件先壓縮再輸出是再正常不過的事了,但是這種壓縮都是動態(tài)的,在每次請求都會先壓縮再輸出,大大浪費了很多cpu。如果前端加了反向代理緩存,那能減少這種浪費。但不是每個生產(chǎn)環(huán)境前端都有緩存的。而nginx有個模塊Gzip Precompression,這個模塊的作用是對于需要壓縮的文件,直接讀取已經(jīng)壓縮好的文件(文件名為加.gz),而不是動態(tài)壓縮,對于不支持gzip的請求則讀取原文件。?
./configure --prefix=/opt/nginx/nginx-1.9.6 --with-http_gzip_static_module?

1.gzip_static配置優(yōu)先級高于gzip?
2.開啟nginx_static后,對于任何文件都會先查找是否有對應的gz文件?
3.gzip_types設置對gzip_static無效?

驗證方法也很簡單。可以自行壓縮不同大小的×.gz文件,通過瀏覽器調(diào)試工具查看返回的文件大小即可。?
壓縮命令?
gzip -c -9 jquery-1.11.2.min.js > jquery-1.11.2.min.js.gz?
?
原始文件:284k?
代碼混淆,代碼壓縮:95k?
gzip壓縮:33k?
可以看到,284k的jquery文件,經(jīng)過處理以后,變成了33k。?

nginx配置文件?
http節(jié)點下配置:?
gzip? on;?
location節(jié)點下配置?
gzip_vary on;?
gzip_static on;?

壓縮有瀏覽器查看?
?

完整配置文件請參考附件?


三 常用命令和技巧?
以下三條命令,都可以附加上Accept-Encoding首部,來獲取壓縮與非壓縮的服務器報文?
apache-bench?
./ab -n 100000 -c 16 -H 'Accept-Encoding: gzip' 'http://192.168.56.2:8080/cache_ehcache-2.10.0_web/ex^Cre'?

wget?
其中wget是以http/1.0請求的,這個要注意gizp里開啟1.0的壓縮,默認是不開啟的?
wget --header=Accept-Encoding:gzip --save-headers? -d http://192.168.56.2:8080/cache_ehcache-2.10.0_web/expire?

curl?
curl -v -H "Accept-Encoding:gzip" http://192.168.56.2:8080/cache_ehcache-2.10.0_web/expire?


四 參數(shù)含義?

Python代碼?

# 開啟壓縮 gzip on; # 設置允許壓縮的頁面最小字節(jié)數(shù),頁面字節(jié)數(shù)從header頭得content-length中進行獲取。默認值是0,不管頁面多大都壓縮。建議設置成大于2k的字節(jié)數(shù),小于2k可能會越壓越大。 gzip_min_length 2k; # 設置系統(tǒng)獲取幾個單位的緩存用于存儲gzip的壓縮結果數(shù)據(jù)流。 例如 4 4k 代表以4k為單位,按照原始數(shù)據(jù)大小以4k為單位的4倍申請內(nèi)存。 4 8k 代表以8k為單位,按照原始數(shù)據(jù)大小以8k為單位的4倍申請內(nèi)存。 # 如果沒有設置,默認值是申請跟原始數(shù)據(jù)相同大小的內(nèi)存空間去存儲gzip壓縮結果。 gzip_buffers 4 16k; #壓縮級別,1-10,數(shù)字越大壓縮的越好,也越占用CPU時間 gzip_comp_level 5; # 默認值: gzip_types text/html (默認不對js/css文件進行壓縮) # 壓縮類型,匹配MIME類型進行壓縮 # 不能用通配符 text/* # (無論是否指定)text/html默認已經(jīng)壓縮 # 設置哪壓縮種文本文件可參考 conf/mime.types gzip_types text/plain application/x-javascript text/css application/xml; # 值為1.0和1.1 代表是否壓縮http協(xié)議1.0,選擇1.0則1.0和1.1都可以壓縮 gzip_http_version 1.0 # IE6及以下禁止壓縮 gzip_disable "MSIE [1-6]\."; # 默認值:off # Nginx作為反向代理的時候啟用,開啟或者關閉后端服務器返回的結果,匹配的前提是后端服務器必須要返回包含"Via"的 header頭。 # off - 關閉所有的代理結果數(shù)據(jù)的壓縮 # expired - 啟用壓縮,如果header頭中包含 "Expires" 頭信息 # no-cache - 啟用壓縮,如果header頭中包含 "Cache-Control:no-cache" 頭信息 # no-store - 啟用壓縮,如果header頭中包含 "Cache-Control:no-store" 頭信息 # private - 啟用壓縮,如果header頭中包含 "Cache-Control:private" 頭信息 # no_last_modified - 啟用壓縮,如果header頭中不包含 "Last-Modified" 頭信息 # no_etag - 啟用壓縮 ,如果header頭中不包含 "ETag" 頭信息 # auth - 啟用壓縮 , 如果header頭中包含 "Authorization" 頭信息 # any - 無條件啟用壓縮 gzip_proxied expired no-cache no-store private auth; # 給CDN和代理服務器使用,針對相同url,可以根據(jù)頭信息返回壓縮和非壓縮副本 gzip_vary on;




五 參考資料?
nginx 預壓縮(gzip)靜態(tài)文件?
http://willko.iteye.com/blog/667091?

Nginx中gzip_static模塊的使用?
http://inosin.iteye.com/blog/1299705?

Nginx 開啟Gzip壓縮的方法(非常的詳解)?
http://www.111cn.net/sys/nginx/69492.htm?

Nginx Gzip模塊啟用和配置指令詳解?
http://www.jb51.net/article/48995.htm?

linux下gzip的壓縮詳解?
http://booby325.iteye.com/blog/1685855?

加速nginx: 開啟gzip和緩存?
http://www.darrenfang.com/2015/01/setting-up-http-cache-and-gzip-with-nginx/?

配置vary?
http://www.webkaka.com/blog/archives/how-to-set-Vary-Accept-Encoding-header.html

總結

以上是生活随笔為你收集整理的nginx系列(十七)nginx下的gzip与vary、预压缩、缓存、反向代理的结合的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本人添下边视频免费 | 一级特黄aaa | 精品丝袜一区 | 免费无遮挡网站 | 久久久久久久久免费 | 97超碰福利 | 欧美高清视频在线观看 | 亚洲精品小说 | 伊人久久青青 | 性――交――性――乱睡觉 | 日本一本久久 | 蜜臀久久99精品久久久久久 | 黑人玩弄人妻一区二区三区影院 | 久草福利| 最近中文字幕免费视频 | 99精品视频在线播放免费 | 久久久久亚洲av无码专区 | 中文字幕成人av | 中文字幕亚洲一区 | 久久久视 | 小柔好湿好紧太爽了国产网址 | 那里可以看毛片 | 中文字幕一区二区三区人妻四季 | 最近免费中文字幕中文高清百度 | 韩日在线视频 | 深夜网站在线观看 | 91官网在线观看 | 欧美成人黄色小视频 | www.99色 | 天堂av亚洲av国产av电影 | 超碰在线人人干 | 九七电影院97理论片 | www.av黄色 | 国产欧美精品一区二区色综合朱莉 | 欧美一级免费片 | 人人爽人人干 | 在线观看视频福利 | 亚洲色图制服诱惑 | 99视频免费在线观看 | 中文字幕理伦片免费看 | 亚洲色图五月天 | 成人精品免费视频 | 欧美精品久久久久 | 亚洲一区二区三区三州 | 美国美女黄色片 | 四虎综合| 久久精彩| 欧美精品 日韩 | 日本一级三级三级三级 | 亚洲av电影天堂男人的天堂 | 琪琪女色窝窝777777 | 欧美日本中文字幕 | 久久影视一区二区 | 91午夜精品 | 亚洲精品系列 | 懂色一区二区二区av免费观看 | 国产一区日韩精品 | 久久久久久久久久久久久av | 欧美国产三级 | 一区二区三区四区国产 | 免费黄视频网站 | 水蜜桃久久 | av免费网| 美女扒开粉嫩的尿囗给男生桶 | 日本少妇一区二区 | 久久综合色婷婷 | 日本黄色片免费看 | 老司机综合网 | 国产又黄视频 | 日韩五十路 | 女同性做爰三级 | 欧美中文字幕一区二区 | 美女大bxxxxn内射 | 国产精品午夜福利视频234区 | 国产精品久久久久久久久久久久久久久久久 | аⅴ资源新版在线天堂 | 永久久久久久久 | 欧美色女人 | 黄色福利社| 香蕉视频ap| 中文字幕一区二区三区久久久 | 综合久久久久综合 | 麻豆精品影院 | 日韩视频免费在线 | 熟妇五十路六十路息与子 | 久久久在线视频 | 天天天操操操 | 黄页免费视频 | 又爽又黄又无遮挡 | 国产成人av一区二区三区不卡 | 自拍偷拍欧美亚洲 | 日本专区在线 | 欧美性猛交xxxx免费看久久久 | 国产免费一区二区三区最新不卡 | 中文字幕在线观看免费高清 | 亚洲欧美自拍另类 | 天堂8在线视频 | 欧美hdse | 欧美丝袜一区二区三区 |