china0114.com-日韩欧美中文免费,免费视频一区,免费视频一区,国产精品色网

公眾號
關(guān)注微信公眾號
移動端
創(chuàng)頭條企服版APP

緩存隨談系列之二:靜態(tài)緩存

6765

本文作者: 喬銳杰 現(xiàn)擔(dān)任上海駐云信息科技有限公司運維總監(jiān)/架構(gòu)師。曾任職過黑客講師、java軟件工程師/網(wǎng)站架構(gòu)師、高級運維、阿里云架構(gòu)師等職位。維護過上千臺服務(wù)器,主導(dǎo)過眾安保險、新華社等千萬級上云架構(gòu)。在云端運維、分布式集群架構(gòu)等方面有著豐富的經(jīng)驗。

以下正文

上次寫了一篇數(shù)據(jù)庫緩存,由于快餐式的風(fēng)格,遭到了廣大讀友的吐槽。上篇風(fēng)格有點 “ 虛 ”,我本身是一個技術(shù)控,偏向經(jīng)驗/干貨的分享,本文主要描述靜態(tài)緩存方面的一些心得及分享。作為系列二,有所不足之處,依舊希望大家踴躍“ 亮磚 ”。

說起靜態(tài)緩存技術(shù),CDN是經(jīng)典代表之作。靜態(tài)緩存技術(shù)面非常廣,涉及的開源技術(shù)包含apache、Lighttpd、nginx、varnish、squid等。

靜態(tài)緩存,一般指 web 類應(yīng)用中,將圖片、js、css、視頻、html等靜態(tài)文件/資源通過磁盤/內(nèi)存等緩存方式,提高資源響應(yīng)方式,減少服務(wù)器壓力/資源開銷的一門緩存技術(shù)。

本文主要通過:瀏覽器緩存、磁盤緩存、內(nèi)存緩存、nginx的內(nèi)存緩存、CDN五個方面圍繞靜態(tài)緩存而展開。


一、瀏覽器緩存

瀏覽器緩存,也稱為客戶端緩存,是靜態(tài)緩存中最常見最直接的表現(xiàn)形式,很多時候都往往被人忽略掉。

案例1:

我們經(jīng)常在nginx的配置文件中看到以下緩存配置:


案例2:

在經(jīng)常寫 jsp 的時候,html 標(biāo)簽中關(guān)于 http 頭信息也可以注意到“ expires ”的字樣:

對于案例1和案例2中(nginx設(shè)置的expires優(yōu)先級大于代碼中設(shè)置的expires優(yōu)先級),expires是給一個資源設(shè)定一個過期時間,也就是說無需去服務(wù)端驗證,直接通過瀏覽器自身確認(rèn)是否過期即可,所以不會產(chǎn)生額外的流量。此種方法非常適合不經(jīng)常變動的資源。如果文件變動較頻繁,就不要使用 expires 來緩存。

比如對于常見類web網(wǎng)站來說,css 樣式和 js 腳本基本已經(jīng)定型,所以最適合的方法是 expires 來緩存一些內(nèi)容到訪問者瀏覽器。


案例3:

通過 chrome 訪問服務(wù)器端的一張圖片,用F12鍵打開開發(fā)者前端調(diào)試工具:


第一次訪問,響應(yīng)200狀態(tài),當(dāng)?shù)诙渭昂罄m(xù)訪問的時候,變成304狀態(tài),客戶端已經(jīng)開始獲取瀏覽器緩存內(nèi)容,而不需要去服務(wù)器端獲取對應(yīng)的請求內(nèi)容,即 nginx 中 expires 參數(shù)設(shè)置已經(jīng)生效。等待客戶端緩存時間過期后,會再次請求服務(wù)器端內(nèi)容來更新本地緩存。


介紹到這里,突然想起一個有意思的需求。比如,訪問一張靜態(tài)文件,不想客戶端緩存,需要每次都去服務(wù)器端取數(shù)據(jù)。我們可以用“ last-modified ”參數(shù)來實現(xiàn),即“ last-modified ”是根據(jù)文件更新時間來確定是否再次發(fā)送加載。


Nginx核心配置如下:


我們更改掉服務(wù)器傳回客戶端的“ last-modified ”文件修改時間參數(shù)的值,這樣導(dǎo)致客戶端本地保存的文件時間每次跟服務(wù)器端傳回來的時間不一致,所以每次客戶端“ 誤認(rèn)為 ”服務(wù)器端有靜態(tài)文件更新,每次都會去服務(wù)器端取“ 所謂的最新數(shù)據(jù) ”。這樣我們可以看到,不管在瀏覽器訪問多少次,返回的 http 狀態(tài)都是200,再也找不到304狀態(tài)了。

誤區(qū):在 nginx 中設(shè)置 expires,并不是指把靜態(tài)內(nèi)容緩存在 nginx 中,而是設(shè)置客戶端瀏覽器緩存的時間,這是很多人的誤區(qū)所在。


二、磁盤緩存

除了存儲在客戶端的靜態(tài)緩存(瀏覽器靜態(tài))技術(shù)外,在服務(wù)器端的靜態(tài)緩存技術(shù)主要分為磁盤緩存和內(nèi)存緩存兩大類。單純圍繞 nginx 的 squid、varnish 等一類中間件,處理靜態(tài)數(shù)據(jù)的性能十分優(yōu)秀。核心是 nginx 基于 epoll 網(wǎng)絡(luò)模型,而相比 apache 基于 select 網(wǎng)絡(luò)模型。所以 apache 的優(yōu)勢在于密計算型,穩(wěn)定性好。而 nginx 偏向靜態(tài)處理,反向代理,高并發(fā)。比如 apache+php 的穩(wěn)定性比 nginx+php 要好,而性能是明顯 nginx 要優(yōu)秀許多。

以上僅單純是對磁盤中靜態(tài)數(shù)據(jù)處理的能力,所謂磁盤緩存,指另外的一種緩存靜態(tài)文件的技術(shù)。以 nginx 配置為例:


可以看出 nginx 主要通過 proxy_cache 來實現(xiàn) web cache,熟悉 nginx 的同學(xué),不難看出,以上配置在 location 這里,不僅可以實現(xiàn)靜態(tài)文件的緩存,還可以實現(xiàn)動態(tài)文件的緩存(這里放在下章節(jié)詳細(xì)介紹)。我們編寫個 test.html測試文件,然后并訪問。test.html 源碼如下:


我們發(fā)現(xiàn)服務(wù)器的 cache 目錄里面,多了兩個緩存文件:



有意思的,這兩個文件里面的內(nèi)容分別為(通過 less 命令查看):



(b0ad5d3e7f099bfff9e4fc6a159d868c)



(53edc39ed253e14415a29412cfc01faf)


所以不難看出,nginx 把 html 內(nèi)容和圖片二進制全部緩存到本地磁盤上了。下次用戶再次來訪問 test.html 的時候,nginx 直接將緩存在本地磁盤的文件返回給用戶。特別是后端如若是部署的 tomcat、iis 等,nginx 強大的靜態(tài)緩存能力,有效減少了服務(wù)器壓力。


三、內(nèi)存緩存

緊接上面描述的磁盤緩存,內(nèi)存緩存顧名思義,就是把靜態(tài)文件緩存在服務(wù)器端的內(nèi)存中。所以這種緩存,如若命中緩存的話,取內(nèi)存中的緩存數(shù)據(jù)返回比取磁盤中的緩存數(shù)據(jù)返回,性能要高很多。以 varnish 為例,varnish 核心配置如下:

啟動命令:


參數(shù)簡介:


default.vcl核心配置如下:


Varnish對.gif、.jpg、.jpeg、.png等結(jié)尾的 URL 緩存時間設(shè)置1小時。varnish設(shè)置完畢后,我們用命令行方式,通過查看網(wǎng)頁頭來查看命中情況:



最后,我們可以通過 varnishadm 命令來清理緩存,也可以通過 varnishstat 命令來查看 varnish 系統(tǒng)緩存狀態(tài)。


四、Nginx 的內(nèi)存緩存

以上主要以 Varnish 為例,介紹了內(nèi)存緩存靜態(tài)資源的方法。其實 nginx 也有內(nèi)存緩存,相比 squid、varnish 而言,nginx 的內(nèi)存緩存需要通過編碼實現(xiàn)。如下配置:

memcached_pass 指定服務(wù)器地址,使用變量 $memcache_key 為 key 查詢值,去 memcache 查詢對應(yīng) value 值。

如我們訪問:http://***.***.***.***/image/test.jpg ,則 nginx 去 memcache 中查詢key 為“ test.jpg ”的 value 值并返回。如果沒有相應(yīng)的值,則返回 error_page 404。介紹到這里,關(guān)鍵在于存儲在 memcache 中的靜態(tài)文件,需要通過代碼寫入 memcache 中。怎么樣通過 php/java 等代碼把靜態(tài)資源的數(shù)據(jù)寫入 memcache 中,關(guān)于這塊的示例就不再過多介紹了。

Nginx的內(nèi)存緩存因為需要通過編碼實現(xiàn),所以靈活性特別高。這塊可以結(jié)合自身業(yè)務(wù)系統(tǒng)的特點,讓靜態(tài)緩存的靈活性和效率都能得到保障。可能唯一的缺陷就是,通過編碼實現(xiàn)的方式,給我們維護管理帶來了負(fù)擔(dān)。在之前我曾參與的一個電商系統(tǒng),就是把客戶的訂單照片通過 php 代碼寫入 memcache,客戶訪問取圖的時候,從 memcache 中獲取,速度效率特別高。Nginx 作為一款在七層無所不能且輕量級高性能的中間件,能夠直接去 memcache 中取數(shù)據(jù),來實現(xiàn)靜態(tài)緩存的效果,這塊相應(yīng)的功能是其他軟件無法相媲美的。


五、CDN

說起 CDN,大家都不陌生,它是靜態(tài)緩存加速最典型的代表。CDN技術(shù)并不是一門新的技術(shù),它是基于傳統(tǒng) nginx、squid、varnish 等 web 緩存技術(shù),結(jié)合 DNS 智能解析的靜態(tài)緩存加速技術(shù)。值得注意的是,他對動態(tài)鏈接訪問并沒有加速效果。架構(gòu)原理圖如下:

所以CDN的靜態(tài)緩存技術(shù)核心主要在于兩點:

節(jié)點緩存:對需要加速的網(wǎng)站應(yīng)用,相應(yīng)的靜態(tài)資源通過內(nèi)存緩存+磁盤緩存的方式緩存在服務(wù)器端。

精準(zhǔn)調(diào)度:對訪問的用戶 ip 進行智能解析調(diào)度,實現(xiàn)就近緩存節(jié)點訪問。比如以上圖例中,北京用戶訪問 www.a.com。通過 dns 解析的時候,分析用戶 ip,發(fā)現(xiàn)是北京用戶。則 dns 返回對應(yīng)北京緩存節(jié)點的 ip 地址給到用戶,則用戶 www.a.com 默認(rèn)訪問北京服務(wù)器上面的緩存數(shù)據(jù),實現(xiàn)就近訪問的策略,大大提升了訪問速度。


杜絕抄襲,支持開源,我為自己吶喊,百分百原創(chuàng)作者:喬銳杰


好啦~本文到這里就結(jié)束了,同時,如果喜歡我們的話就趕緊訂閱我們吧~~~每天定時推送新鮮干貨~~~也可以關(guān)注我們的微信公眾號:架構(gòu)云專家頻道 每天同步更新喲~~~

您也可以關(guān)注我們的官方微信公眾號(ID:ctoutiao),給您更多好看的內(nèi)容。

聲明:本文由架構(gòu)云專家頻道企業(yè)號發(fā)布,依據(jù)企業(yè)號用戶協(xié)議,該企業(yè)號為文章的真實性和準(zhǔn)確性負(fù)責(zé)。創(chuàng)頭條作為品牌傳播平臺,只為傳播效果負(fù)責(zé),在文章不存在違反法律規(guī)定的情況下,不繼續(xù)承擔(dān)甄別文章內(nèi)容和觀點的義務(wù)。
您閱讀這篇文章花了0
轉(zhuǎn)發(fā)這篇文章只需要1秒鐘
喜歡這篇 0
評論一下 0
凱派爾知識產(chǎn)權(quán)全新業(yè)務(wù)全面上線
相關(guān)文章
評論
登錄后發(fā)表評論
凱派爾知識產(chǎn)權(quán)全新業(yè)務(wù)全面上線
寧波城市站
金華城市站
×
#熱門搜索#
精選雙創(chuàng)服務(wù)
歷史搜索 清空

Tel:18514777506

關(guān)注微信公眾號

創(chuàng)頭條企服版APP

china0114.com-日韩欧美中文免费,免费视频一区,免费视频一区,国产精品色网
亚洲精品菠萝久久久久久久| 国产精品12区| 国产精品资源在线| 色综合激情久久| 久久综合九色综合欧美亚洲| 亚洲国产综合视频在线观看| 粉嫩蜜臀av国产精品网站| 制服丝袜亚洲网站| 一区二区三区在线观看视频| 国产成人在线网站| 精品国产一区二区精华| 午夜久久久影院| 色婷婷一区二区| 中文字幕精品一区| 国产乱子轮精品视频| 日韩一区二区在线看片| 亚洲福中文字幕伊人影院| 91女神在线视频| 国产精品伦一区二区三级视频| 精品一区二区影视| 欧美一级欧美一级在线播放| 亚洲午夜久久久| 日本精品一区二区三区高清| 国产精品第13页| 成人久久18免费网站麻豆| 久久久99精品久久| 国产一区二区福利| 精品福利一二区| 精品一区二区免费看| 日韩视频中午一区| 免费观看一级欧美片| 欧美一区二区三区性视频| 首页综合国产亚洲丝袜| 欧美日韩不卡视频| 午夜影视日本亚洲欧洲精品| 欧洲国产伦久久久久久久| 亚洲精品videosex极品| 日本韩国一区二区三区| 亚洲品质自拍视频网站| 色综合咪咪久久| 一区二区三区在线免费播放| 91久久一区二区| 一区二区三区日韩在线观看| 91福利精品视频| 亚洲福利一二三区| 欧美午夜视频网站| 午夜伦理一区二区| 制服丝袜一区二区三区| 美日韩一区二区三区| 欧美变态tickle挠乳网站| 激情久久久久久久久久久久久久久久| 精品欧美乱码久久久久久1区2区 | 美女精品一区二区| 91精品国产欧美一区二区18 | 色婷婷久久久综合中文字幕 | 色综合咪咪久久| 亚洲精品你懂的| 欧美无人高清视频在线观看| 香港成人在线视频| 欧美一二三四区在线| 国产综合久久久久久鬼色| 国产清纯美女被跳蛋高潮一区二区久久w| 国产在线播放一区三区四| 国产女人水真多18毛片18精品视频 | 亚洲成人精品一区二区| 欧美高清精品3d| 九九精品视频在线看| 久久久久国色av免费看影院| 成人午夜免费视频| 亚洲美女在线国产| 欧美日韩成人激情| 国产在线播放一区三区四| 国产精品人成在线观看免费| 91丨九色丨蝌蚪富婆spa| 亚洲成av人影院在线观看网| 欧美一区二区三区影视| 国产精品99久久久久久有的能看| 国产精品久久久久四虎| 欧美视频第二页| 精品中文字幕一区二区| 国产精品久久久久久久久免费樱桃| 一本色道久久综合精品竹菊| 日韩国产一区二| 国产亚洲欧美中文| 日本电影亚洲天堂一区| 麻豆精品视频在线| 国产精品网站导航| 欧美视频日韩视频| 国产一区二区精品久久| 一区二区视频在线看| 欧美一级高清片| 99久久久久久| 男女激情视频一区| 国产精品久久精品日日| 欧美精品电影在线播放| 国产高清视频一区| 亚洲成精国产精品女| 久久亚洲一区二区三区明星换脸| 97se亚洲国产综合自在线 | 欧美亚洲一区三区| 精品系列免费在线观看| 亚洲人xxxx| 精品国产区一区| 日本韩国一区二区三区视频| 精品综合久久久久久8888| 亚洲精品免费在线播放| 久久亚洲综合色一区二区三区| 91久久香蕉国产日韩欧美9色| 久久国产麻豆精品| 一区二区三区久久| 久久精品无码一区二区三区| 欧美日韩激情一区二区三区| 国产激情视频一区二区三区欧美| 亚洲午夜久久久久久久久电影网 | 日本美女视频一区二区| 国产精品夫妻自拍| 日韩欧美一区二区久久婷婷| 97久久久精品综合88久久| 久久9热精品视频| 一区二区欧美在线观看| 国产亚洲婷婷免费| 91麻豆精品国产综合久久久久久| av成人动漫在线观看| 狠狠色丁香婷婷综合久久片| 亚洲成人免费电影| 亚洲色图在线视频| 国产欧美一区二区三区在线老狼| 欧美一级日韩免费不卡| 欧美曰成人黄网| 成人激情文学综合网| 久久不见久久见中文字幕免费| 亚洲一区二区三区视频在线 | 人人精品人人爱| 亚洲乱码一区二区三区在线观看| 久久一日本道色综合| 欧美日本一道本在线视频| 91亚洲精品久久久蜜桃网站| 国产露脸91国语对白| 青椒成人免费视频| 亚洲国产精品久久不卡毛片| 亚洲日本丝袜连裤袜办公室| 中文字幕第一页久久| 2020国产精品久久精品美国| 欧美一区二区在线不卡| 欧美日本在线看| 欧美在线视频全部完| 91玉足脚交白嫩脚丫在线播放| 国产91清纯白嫩初高中在线观看| 韩国v欧美v亚洲v日本v| 蜜臀av一级做a爰片久久| 五月婷婷欧美视频| 亚洲国产综合在线| 一区二区三区av电影| 最新日韩在线视频| 国产精品久久久久aaaa樱花| 国产欧美日韩三区| 久久久综合精品| 久久这里都是精品| 久久婷婷色综合| 欧美精品一区二区三区久久久| 欧美一区二区三区在线观看视频| 欧美精品色综合| 3751色影院一区二区三区| 欧美日韩免费一区二区三区| 欧美中文字幕一区| 欧美色老头old∨ideo| 精品视频在线看| 欧美美女激情18p| 欧美高清激情brazzers| 欧美疯狂做受xxxx富婆| 91精品国产综合久久精品app| 欧美高清视频在线高清观看mv色露露十八 | 国产成a人亚洲精| 国产黑丝在线一区二区三区| 国产剧情一区二区三区| 国产精品 日产精品 欧美精品| 国产成人在线色| 成人avav影音| 色婷婷久久久久swag精品| 欧美中文字幕亚洲一区二区va在线| 色欧美88888久久久久久影院| 一本久道中文字幕精品亚洲嫩| 在线观看不卡一区| 欧美日韩高清一区二区三区| 欧美一区二区视频在线观看2022| 日韩女同互慰一区二区| 久久无码av三级| 国产精品福利一区二区三区| 亚洲黄一区二区三区| 香蕉乱码成人久久天堂爱免费| 麻豆精品久久精品色综合| 国产在线精品一区二区 | 中文字幕一区二区视频| 日韩毛片精品高清免费| 亚洲一区二区在线免费观看视频| 午夜久久久久久久久| 久久99国产精品免费网站| 国产成人亚洲综合a∨婷婷图片| 波多野结衣91| 欧美日韩午夜精品|