什么是CDN?有什么用途?如何使用?
Admin 2023-05-23 群英技術資訊 58 次瀏覽
CDN-內容推送網絡
前段時間介紹了瀏覽器緩存機制,通過瀏覽器緩存一方面可以改善用戶的體驗,而不用漫長地等待從服務器下載資源;另一方面減輕服務器壓力、節省流量。CDN是另一種可以大幅度優化用戶體驗,且減輕服務器壓力的技術。下面就自己了解的CDN技術分享下。
CDN的實現是一組技術的組合,每個技術都可以單獨成文詳細討論,這里就不深入每個技術。內容目錄:
1. 什么是CDN? 1
2. CDN技術原理... 1
2.1. 分布式存儲... 1
2.2. 內容管理... 2
2.3. 負載均衡... 2
2.4. 網絡請求的重定向... 2
3. CDN資源訪問流程... 3
4. 關于CDN的疑問... 3
4.1. 使用CDN后,如何獲取客戶端真實IP?... 3
4.2. 采用CDN服務以后如何保證內容的更新和同步?... 4
CDN的全稱是Content Delivery Network,即內容分發網絡。其目的是通過在現有的Internet中增加一層新的網絡架構,將網站的內容發布到最接近用戶的網絡"邊緣"(邊緣服務器),使用戶可以就近取得所需的內容,解決Internet網絡擁擠的狀況,提高用戶訪問網站的響應速度。從技術上全面解決由于網絡帶寬小、用戶訪問量大、網點分布不均等原因所造成的用戶訪問網站響應速度慢的問題。
CDN技術是在美國首先興起并迅速發展起來的一種解決互聯網性能不佳問題的有效手段。其基本思路就是盡可能避開互聯網上有可能影響數據傳輸速度和穩定性的瓶頸和環節,使內容傳輸的更快、更穩。通過在網絡各處放置節點服務器所構成的在現有的互聯網基礎之上的一層智能虛擬網絡,CDN系統能夠實時地根據網絡流量和各節點的連接、負載狀況以及到用戶的距離和響應時間等綜合信息將用戶的請求重新導向離用戶最近的服務節點上。
CDN網絡架構主要由兩大部分,分為中心和邊緣兩部分,中心指CDN網管中心和DNS重定向解析中心,負責全局負載均衡,設備系統安裝在管理中心機房;邊緣主要指異地節點,CDN分發的載體,主要由Cache和負載均衡器等組成。
實際上,CDN是一種新型的網絡構建方式,它是為能在傳統的IP網發布寬帶豐富媒體而特別優化的網絡覆蓋層;而從廣義的角度,CDN代表了一種基于質量與秩序的網絡服務模式。簡單地說,CDN是一個經策略性部署的整體系統,包括分布式存儲、負載均衡、網絡請求的重定向和內容管理4個要件。
這點顯而易見,CDN網絡將存儲資源分布到各個地理位置、各個網段。存儲系統作為CDN系統密不可分的一部分,將CDN分發的文件和數據庫表記錄內容存儲起來,提供持續服務。存儲系統采用三級存儲架構,包括核心存儲、CDN服務節點分布式緩存和終端本地緩存。任意一個點的存儲崩潰或失效,并不影響系統服務的可用性。
圖:當下云摘CDN的存儲示意圖(其它CDN也是類似)
如CDN系統在5大運營商(中國電信、中國網通、中國鐵通、中國移動、中國聯通)以及2大專有網絡(中國教育和科研計算機網、中國科技網)都布有CDN節點。這樣就消除了不同運營商之間互聯的瓶頸造成的影響,實現了跨運營商的網絡加速,保證不同網絡中的用戶都能得到良好的訪問質量。
內容管理和全局的網絡流量管理(Traffic Management)是CDN的核心所在。通過用戶就近性和服務器負載的判斷,CDN確保內容以一種極為高效的方式為用戶的請求提供服務??偟膩碚f,內容服務基于緩存服務器,也稱作代理緩存(Surrogate),它位于網絡的邊緣,距用戶僅有"一跳"(Single Hop)之遙。同時,代理緩存是內容提供商源服務器(通常位于CDN服務提供商的數據中心)的一個透明鏡像。這樣的架構使得CDN服務提供商能夠代表他們客戶,即內容供應商,向最終用戶提供盡可能好的體驗,而這些用戶是不能容忍請求響應時間有任何延遲的。據統計,采用CDN技術,能處理整個網站頁面的 70%~95%的內容訪問量,減輕服務器的壓力,提升了網站的性能和可擴展性。
CDN負載均衡系統實現CDN的內容路由功能。它的作用是將用戶的請求導向整個CDN網絡中的最佳節點。最佳節點的選定可以根據多種策略,例如距離最近、節點負載最輕等。負載均衡系統是整個CDN的核心,負載均衡的準確性和效率直接決定了整個CDN的效率和性能。通常負載均衡可以分為兩個層次:全局負載均衡(GSLB)和本地負載均衡(SLB)。
l 全局負載均衡(GSLB)主要的目的是在整個網絡范圍內將用戶的請求定向到最近的節點(或者區域)。因此,就近性判斷是全局負載均衡的主要功能。
l 本地負載均衡一般局限于一定的區域范圍內,其目標是在特定的區域范圍內尋找一臺最適合的節點提供服務,因此,CDN節點的健康性、負載情況、支持的媒體格式等運行狀態是本地負載均衡進行決策的主要依據。
負載均衡可以通過多種方法實現,主要的方法包括DNS、應用層重定向、傳輸層重定向等等。對于全局負載均衡而言,為了執行就近性判斷,通??梢圆捎脙煞N方式,一種是靜態的配置,例如根據靜態的IP地址配置表進行IP地址到CDN節點的映射。另一種方式是動態的檢測,例如實時地讓CDN節點探測到目標IP的距離(可以采用RRT,Hops作為度量單位),然后比較探測結果進行負載均衡。當然,靜態和動態的方式也可以綜合起來使用。
對于本地負載均衡而言,為了執行有效的決策,需要實時地獲取Cache設備的運行狀態。獲取的方法一般有兩種,一種是主動探測,一種是協議交互。主動探測針對SLB設備和Cache設備沒有協議交互接口的情況,通過ping等命令主動發起探測,根據返回結果分析狀態。另一種是協議交互,即SLB和 Cache根據事先定義好的協議實時交換運行狀態信息,以便進行負載均衡。比較而言,協議交互比探測方式要準確可靠,但是目前尚沒有標準的協議,各廠家的實現一般僅是私有協議,互通比較困難。
當用戶訪問了使用CDN服務的資源時,DNS域名服務器通過CNAME方式將最終域名請求重定向到CDN系統中的智能DNS負載均衡系統。智能DNS負載均衡系統通過一組預先定義好的策略(如內容類型、地理區域、網絡負載狀況等),將當時能夠最快響應用戶的節點地址提供給用戶,使用戶可以得到快速的服務。
同時,它還與分布在不同地點的所有CDN節點保持通信,搜集各節點的健康狀態,確保不將用戶的請求分配到任何一個已經不可用的節點上。
使用了CDN服務后,用戶的訪問流程如下圖所示:
圖:CDN用戶訪問流程圖(摘自:思必達CDN)
同時,它還與分布在不同地點的所有CDN節點保持通信,搜集各節點的健康狀態,確保不將用戶的請求分配到任何一個已經不可用的節點上。
使用CDN服務之后獲得原始IP地址發生變化。因為源服務器的請求都來自CDN節點,不知道客戶原始IP。一般來說,CDN節點會以某種方式將源客戶端的IP傳遞給源服務器,如有的網宿CDN,它是將源IP添加到了一個叫“Cdn-Src-Ip”的Http Header里,以C#語言為例,獲得客戶端真實IP的方式如下:(根據不同的CDN提供商可能會有所不同)。
C#代碼 |
String srcIp = Request.Headers["Cdn-Src-Ip"]; if(srcIp == null) { srcIp = Request.UserHostAddress; } |
或者從HTTP請求Header中“HTTP_X_FORWARDED_FOR”字段獲得。HTTP_X_FORWARDED_FOR的值是:"原始真實IP,1層代理IP,2層代理IP,....."。判斷HTTP_X_FORWARDED_FOR是否為空(沒有使用CDN或代理這個字段為空),不為空把這個作為IP地址。這是一個簡單有效的方法。至于很復雜的情況就不處理了,比如多層代理。
在CDN服務中,CDN節點中的內容與源網站內容的同步主要是靠設置刷新時間策略來實現的。針對不同的內容設置不同的刷新時間,對于更新頻率比較低的內容可以設置較長的刷新時間以減輕回源站的訪問壓力;對頻繁更新的內容,我們可以設置成10分鐘或更短,以此來保證內容的同步。設置刷新時間可以按目錄來設置,也可以按具體URL來設置,或按某個關鍵字段來設置,非常靈活。
現在大家對于什么是CDN?有什么用途?如何使用?的內容應該都有一定的認識了吧,希望這篇能對大家有所幫助。最后,想要了解更多,歡迎關注群英網絡,群英網絡將為大家推送更多相關的文章。免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:mmqy2019@163.com進行舉報,并提供相關證據,查實之后,將立刻刪除涉嫌侵權內容。
猜你喜歡
服務器被入侵既有一定的偶然性,也有一定的必然性,網絡上有兩種黑客,一種是漫無目的的漫天撒網形式的黑客,一種是目標明確只入侵指定目標的黑客,我們稱前一種黑客叫菜鳥黑客,稱后一種黑客叫高級黑客。
SQL注入攻擊是什么?SQL注入攻擊是注入攻擊的常見類型,是黑客對對數據庫進行攻擊的常用手段之一。黑客可以通過將任意惡意SQL代碼插入數據查詢,是攻擊者能夠完全控制web應用程序后面的數據庫服務器。而SQL注入攻擊類型也有很多,了解SQL注入攻擊種類能幫助我們更好的做好防范。
本文主要給大家介紹的如何突破入侵檢測系統,了解破入侵檢測系統的方法對于我們更好的防御以及完善入侵檢測系統都是有幫助的,下面我們一起來看看都有哪些方法。
近些年,網絡攻擊的事件越來越多,隨著互聯網競爭的激烈,很多網站不僅要面臨黑客的攻擊,還可能會遭受競爭對手的惡意攻擊。因此,為了確保網站的穩定發展,做好網站的安全維護是至關重要的。那么究竟我們的網站可能面臨的安全問題有什么呢?該如何做好安全維護?
服務器被攻擊如何應對?當前,網絡攻擊越來越多,而且攻擊手段也越來越多,讓人防不勝防。那么如果服務器遭受到攻擊了,我們如何最大限度的降低被攻擊的影響呢?接下來給大家分享一下應對服務器被攻擊的操作。
成為群英會員,開啟智能安全云計算之旅
立即注冊Copyright ? QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版權所有
增值電信經營許可證 : B1.B2-20140078 粵ICP備09006778號 域名注冊商資質 粵通業函〔2019〕397號