cdn就是讓原本的訪問主站伺服器的流量或瀏覽器,去存取部署在理他較近的地方上的快取伺服器來處理,這樣就可以大大減輕主伺服器的壓力,而且同時能夠提高使用者的存取速度,降低頻寬的壓力。
本教學操作環境:windows10系統、DELL G3電腦。
cdn簡單來說,就是讓原本的訪問主站伺服器的流量或瀏覽器,去存取部署在理他較近的地方上的快取伺服器來處理,這樣,就可以大大減輕主伺服器的壓力,而且同時能夠提高用戶的訪問速度,降低頻寬的壓力。
一般需要cdn服務的網站會選擇一下的組織方案:
#1、透過租用的IDC提供額外的CDN服務;
2 ..購買專業的CDN服務商的服務;
3.自己組成CDN網路;成本依序增高。
Cdn設計的目的是實現web內容的負載平衡,防止出現訪問請求熱點,延遲響應,等情況,也可以用在遊戲架構中,提高遊戲的訪問拉去資源的速度.
Cdn的特點:
1,分散式的儲存,
2,透過智慧的dns解析或http重定向實現內容的分發的負載平衡,
3,全域負載平衡管理與內容管理,
Cdn的組成:
cdn網路中所包含的功能實體包含了內容快取設備,內容路由器,cdn內容管理系統等組成,
內容快取:為CDN網路節點,位於使用者存取點,是針對最終使用者的內容提供設備,可快取靜態WEB內容和串流媒體內容,實現內容的邊緣傳播和存儲,以便用戶的就近訪問。
內容交換器: 處於使用者存取集中點,可以平衡單點說個內容快取裝置的負載,並對內容進行負載平衡的存取控制.
內容路由器負責將使用者的請求調度到適當的設備上,動態的均衡各個內容緩存站點的載荷分配,為用戶的請求選擇最佳的訪問站點,同時來提高網站的可用性,內容路由器可根據多種因素制定路由,包括站點與使用者的臨近度、內容的可用性、網路負載、設備狀況等.
注意:負載平衡是整個cdn的核心,負載平衡的準確性和效率將直接決定整個cdn的效率.
Cdn快取: cdn快取就是一個暫時儲存網路訊號的暫存器,在cdn資料庫中會快取這大量的網路請求訊號,然後cdn資料庫會根據目前網路伺服器的狀態,進行不同的網路請求訊號的分配,這樣就能夠使得很多閒置的網路伺服器也能夠運作起來,.
Cdn的網路架構:
Cdn網路一般分為中心與邊緣節點,中心負責全域的負載平衡管理與內容管理..
架構圖:
這裡cdn進行層級的劃分: 在cdn系統中,負責給用戶提供內容服務的cache設備都部署在整個cdn網路I邊緣,所以成為邊緣節點.
Cdn的中心層是負責全局的管理和控制,同時保存著最多的cache,當邊緣層未命中時,就會將中心層進行請求,如果中心層也沒有命中則向源站進行請求數據.如果源站返回給了中心層,或者說中心層本身有對應的數據返回給了邊緣層,邊緣就會返回給用戶同時自己會在本地進行一份快取.
如果系統比較龐大,邊緣層向中心請求內容太多,則需要區域節點,進行代理,負責一個區域的管理和控制.
CDN的工作原理
Cdn網路是在使用者和伺服器之間增加了一層cache,如何將使用者的請求引導到cache上,那麼就需要用dns,透過dns的解析調整進行請求的一個轉送.
大致的流程: 1,使用者請求一個網域名稱, 2,瀏覽器對域名進行解析,這裡詳細的dns解析過程就不在闡述,由於cnd對域名的解析過程進行了調整,通過函數解析庫得到的是該域名對應的cname記錄之後的域名,所以瀏覽器會再次對cname的網域進行存取,請求ip,這個過程中,使用全域的負載平衡策略進行dns解析,其中根據地理位置等資訊解析到就近的位置上,讓用戶對它進行存取.
3,得到快取的伺服器的ip位址,瀏覽器發起存取請求,
4,快取伺服器根據請求透過cache內部專用的dns解析後,得到網域名稱的真實ip,再向真實的伺服器發送請求,請求對應的資料,
5,來源站伺服器發出應答資料,快取伺服器得到資料後,在本地進行快取一份備用,然後傳回給使用者一份,完成流程.
內容分發技術:
#當來源站需要分發內容的時候,可以將分發內容分發到CDN中間源 再由CDN中間源轉發內容到各個CDN節點 如果CDN節點需要請求某個URL內容請求時,會將請求先傳送到CDN中間來源 再由CDN中間源主動向源站發送請求內容,最後將獲取到的資料存儲到中間源和內容節點上,從而達到節點加速的效果.
#主要分為兩種方式,主動推送:源站伺服器向各個節點推送最新數據,進行更新.
被動推送:被動訪問就是在用戶訪問時,向鏡像伺服器發送請求,如果鏡像伺服器上有內容,就直接返回給用戶,如果沒有,就到伺服器來源站獲取後在返回給用戶.
同時cdn邊緣節點上的內容不是實時更新的,文件是以鍵值對的方式進行存儲的,鍵值對的key通常是檔案的url,值中保存了檔案在伺服器中的位置,或檔案的二進位值,同時保存了檔案的http頭部資訊.
以上是cdn快取是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!