CDN的加速緩存原理與回源機制解析
CDN 是一個分布式的內(nèi)容分發(fā)網(wǎng)絡(luò)。當(dāng)用戶請求一個網(wǎng)絡(luò)資源時,用戶請求的是 CDN 提供的資源。和域名系統(tǒng)類似,當(dāng)用戶請求一個資源時,首先會接觸到一個類似域名系統(tǒng)中目錄的服務(wù),這個服務(wù)會告訴用戶究竟去哪個 IP 獲取這個資源。事實上,很多大型的應(yīng)用,會把 DNS 解析作為一種負(fù)載均衡的手段。當(dāng)用戶請求一個網(wǎng)址的時候,會從該網(wǎng)站提供的智能 DNS 中獲取網(wǎng)站的 IP。
CDN 是什么?
CDN加速的原理基于兩個關(guān)鍵概念:緩存和就近訪問。
1. 緩存:CDN節(jié)點會將網(wǎng)站的靜態(tài)資源(如圖片、CSS、JavaScript等)復(fù)制到各個服務(wù)器上,并將其存儲在高速緩存中。當(dāng)用戶發(fā)起請求時,CDN會先檢查是否有緩存的副本。如果有,CDN會直接將資源返回給用戶,而無需向原始服務(wù)器發(fā)出請求。
2. 就近訪問:CDN網(wǎng)絡(luò)由分布在全球各地的節(jié)點組成。當(dāng)用戶發(fā)起請求時,CDN會根據(jù)用戶的地理位置,將請求路由到距離用戶最近的節(jié)點。這樣做可以減少數(shù)據(jù)傳輸?shù)木嚯x和網(wǎng)絡(luò)延遲,提高網(wǎng)站的加載速度。
CDN緩存
當(dāng)用戶請求一個靜態(tài)資源的時候,首先會觸發(fā)域名系統(tǒng)的解析。域名系統(tǒng)會將解析的責(zé)任交由 CDN 提供商來處理,CDN 的智能 DNS 服務(wù)會幫助用戶選擇離自己距離最近的節(jié)點,返回這個節(jié)點的 A(或 AAAA)記錄。然后客戶端會向 CDN 的資源節(jié)點發(fā)起請求,最終獲得資源。
在上面整個過程當(dāng)中,CDN 的智能 DNS 還充當(dāng)了負(fù)載均衡的作用。如果一個節(jié)點壓力過大,則可以將流量導(dǎo)向其他的節(jié)點。
CDN往往被用來存放靜態(tài)資源。所謂靜態(tài)資源就像JS CSS 圖片等不需要業(yè)務(wù)服務(wù)器進行計算得到的資源。而動態(tài)資源, 顧名思義就是i需要后端實時動態(tài)生成的資源, 較為常見的就是JSP ASP 或者依賴服務(wù)端渲染得到的HTML頁面。
CDN 回源
CDN 回源就是 CDN 節(jié)點到源站請求資源,重新設(shè)置緩存。在 CDN 的設(shè)計當(dāng)中,CDN 實際上提供的是數(shù)據(jù)的緩存。而原始數(shù)據(jù),則由服務(wù)的提供者提供。
用戶的請求先到達(dá)緩存層,如果緩存被穿透,才到達(dá)最終的存儲層。緩存的設(shè)計必須是分布式的,因為絕大多數(shù)的資源使用都會發(fā)生在緩存上,只有極少數(shù)的請求才會穿透到底層的存儲。通常這種設(shè)計,我們期望緩存層至少需要幫擋住 99% 的流量。既然緩存層能擋住 99% 的流量,那么實際的數(shù)據(jù)存儲就可以交由源站點完成。
源站內(nèi)容有更新的時候,源站主動把內(nèi)容推送到CDN節(jié)點。常規(guī)的CDN都是回源的。即:當(dāng)有用戶訪問某一個URL的時候,如果被解析到的那個CDN節(jié)點沒有緩存響應(yīng)的內(nèi)容,或者是緩存已經(jīng)到期,就會回源站去獲取。如果沒有人訪問,那么CDN節(jié)點不會主動去源站拿的。
回源域名一般是cdn領(lǐng)域的專業(yè)術(shù)語,通常情況下,是直接用ip進行回源的,但是如果客戶源站有多個ip,并且ip地址會經(jīng)常變化,對于cdn廠商來說,為了避免經(jīng)常更改配置(回源ip),會采用回源域名方式進行回源,這樣即使源站的ip變化了,也不影響原有的配置。
CDN 回源有 3 種情況,一種是 CDN 節(jié)點沒有對應(yīng)資源時主動到源站獲取資源;另一種是緩存失效后,CDN 節(jié)點到源站獲取資源;還有一種情況是在 CDN 管理后臺或者使用開放接口主動刷新觸發(fā)回源。
總結(jié)
CDN適用于靜態(tài)技術(shù),比如圖片,游戲下載,視頻等。缺點:CDN用到的是緩存技術(shù),加速的是網(wǎng)站的靜態(tài)、公用部分。如果是動態(tài)網(wǎng)站,不能緩存,每次都要回源服務(wù)器訪問,用了CDN反而增加了一個環(huán)節(jié),不好。
到此這篇關(guān)于CDN的加速緩存原理與回源機制解析的文章就介紹到這了,更多相關(guān)CDN的加速緩存與回源內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
服務(wù)器端如何使用CORS來允許設(shè)置Cookie
這篇文章主要為大家介紹了服務(wù)器端如何使用CORS來允許設(shè)置Cookie的方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01服務(wù)器之間文件備份方案、如何把服務(wù)器文件自動備份到另外一臺服務(wù)器?
很多單位都有文件服務(wù)器備份的需求,并且常常是把一個服務(wù)器的文件自動備份到另外一臺文件服務(wù)器,下面就跟隨小編一起來了解一下2019-05-05rashost的windows VPS重裝系統(tǒng)的方法
看rashost官方,rebuid系統(tǒng)有l(wèi)inux的說明,居然沒windows的說明,只好試試了2011-10-10selenium+chromedriver在服務(wù)器運行的詳細(xì)教程
這篇文章主要介紹了selenium+chromedriver在服務(wù)器運行的詳細(xì)方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03護衛(wèi)神 主機管理系統(tǒng)使用說明篇 系統(tǒng)設(shè)置
護衛(wèi)神·主機管理系統(tǒng)支持在Windows Server 2003/2008/2012,含32位和64位,直接開設(shè)配置WEB站、FTP站,以及SQL Server和MySQL,是您開設(shè)和管理虛擬主機的絕好幫手,但是對于新用戶可能在使用上有一些困難,因此請仔細(xì)閱讀如下說明文檔2015-01-01Web服務(wù)器和應(yīng)用服務(wù)器之間的區(qū)別詳解
這篇文章主要介紹了Web服務(wù)器和應(yīng)用服務(wù)器之間的區(qū)別詳解,應(yīng)用服務(wù)器是為客戶端提供對業(yè)務(wù)邏輯的訪問這種服務(wù)器,根據(jù)客戶端的請求會將數(shù)據(jù)轉(zhuǎn)化為動態(tài)內(nèi)容,一般還需要數(shù)據(jù)庫的支持,應(yīng)用服務(wù)器的搭建很多時候依賴于應(yīng)用程序的開發(fā)語言,需要的朋友可以參考下2023-07-07