CDN優化

什麼是CDN

內容分發網絡CDN(Content Delivery Network)是建立並覆蓋在承載網之上,由遍佈全球的邊緣節點服務器羣組成的分佈式網絡。CDN能分擔源站壓力,避免網絡擁塞,確保在不同區域、不同場景下加速網站內容的分發,提高資源訪問速度。

CDN將源站資源緩存到遍佈全球的CDN加速節點,當終端用戶請求訪問和獲取源站資源時無需回源,可就近獲取CDN節點上已經緩存的資源,提高資源訪問速度,同時分擔源站壓力。目前CDN部分節點已支持通過IPv6訪問。

CDN接入快捷、簡單,您不需要調整現有業務結構,也不需要進行復雜的配置,只需要在CDN控制檯進行簡單操作,

比如阿里雲只需要配置cdn域名和源站的映射

什麼是LocalDns

Local DNS(本地域名系統)是一種用於解析域名的服務,它運行在用戶的計算機上,可以幫助用戶訪問網絡上的網站和服務。

Local DNS 的工作原理是,當用戶訪問一個網站時,先向本地域名系統請求解析域名。如果本地域名系統已經緩存了該域名的解析結果,則直接返回結果,否則會向公共域名系統(如 DNS)請求解析。

Local DNS 的優點是可以提高訪問網絡的速度,因爲本地域名系統的響應速度通常比公共域名系統快得多。此外,本地域名系統還可以提供域名劫持保護、惡意網站過濾等功能,幫助用戶保護自己的網絡安全。

不過,本地域名系統也有一些缺點,比如當用戶更換網絡時,本地域名系統可能無法正常工作,或者由於緩存的解析結果過期導致無法訪問某些網站。因此,用戶使用本地域名系統時需要注意這些問題。

總的來說,本地域名系統是一種可以提高訪問網絡的速度,並提供域名劫持保護、惡意網站過濾等功能的服務。但是,用戶使用本地域名系統時也需要注意一些問題,以保證其正常使用。

CDN工作過程

傳統訪問過程

如上圖所示,如果要訪問的網站名爲:"www.edu.lagou.com"

(1)客戶端首先會在本機的hosts文件和hosts緩存中查找該域名對應的IP地址;

(2)如果本機中沒有此信息,則會到我們的本地DNS 進行詢問該域名對應的IP地址;

(3)如果本地DNS中仍然沒有該域名的IP信息時,則會由本地DNS依次向根DNS 、頂級域DNS、權威DNS 進行詢問,最終本地DNS 將IP地址發送給客戶端。

(4)客戶端通過IP地址向遠程的源站服務器發出HTTP請求並獲取相應的數據內容。

以上是通過DNS的迭代解析模式獲取域名對應的IP地址併發送HTTP請求的過程。源站的提供商通過配置權威DNS將源站的域名與提供服務的服務器主機進行綁定,使客戶端通過DNS服務可以順利地獲取源站域名對應的IP地址並通過IP地址與源站進行通信。

 CDN工作過程

在DNS解析域名時新增了一個全局負載均衡系統(GSLB) ,GSLB的主要功能是根據用戶的本地DNS(通常距離用戶的物理位置較近)的IP地址判斷用戶的位置,篩選出距離用戶較近的本地負載均衡系統(SLB) ,並將該SLB的IP地址作爲結果返回給本地DNS。

SLB主要負責判斷緩存服務器集羣中是否包含用戶請求的資源數據,如果緩存服務器中存在請求的資源,則根據緩存服務器集羣中節點的健康程度、負載量、連接數等因素篩選出最優的緩存節點,並將HTTP請求重定向到最優的緩存節點上。

GSLB :Global Server Load Balancing,全局負載均衡服務器。

SLB(Server load balancing):負載均衡服務器是對集羣內物理主機的負載均衡,而GSLB是對物理集羣的負載均衡。

爲了更清晰地說明CDN的工作原理,下面以客戶端發起對"www.edu.lagou.com/index.html"的HTTP請求爲例進行說明:

  1. 用戶發起對"www.edu.lagou.com/index.html"的HTTP請求,首先需要通過本地DNS通過"迭代解析"的方式獲取域名"edu.lagou.com"的IP地址;
  2. 如果本地DNS的緩存中沒有該域名的記錄,則向根DNS 發送DNS查詢報文;
  3. 根DNS 發現域名的前綴爲"com",則給出負責解析com 的頂級DNS 的IP地址;
  4. 本地DNS向頂級DNS 發送DNS查詢報文;
  5. 頂級DNS 發現域名的前綴爲"lagou.com",在本地記錄中查找負責該前綴的權威DNS 的IP地址並進行回覆;
  6. 本地DNS向權威DNS 發送DNS查詢報文;
  7. 權威DNS查找到一條NAME字段爲"edu.lagou.com"的CNAME記錄(由服務提供者配置,阿里雲、網宿科技),該記錄的Value字段爲"edu.lagou.cdn.com";並且還找到另一條NAME字段爲"edu.lagou.cdn.com"的A記錄(域名-->IP),該記錄的Value字段爲GSLB的IP地址;
  8. 本地DNS向GSLB發送DNS查詢報文;
  9. GSLB根據本地DNS 的IP地址判斷用戶的大致位置爲北京,篩選出位於海淀區且綜合考量最優的SLB的IP地址填入DNS迴應報文,作爲DNS查詢的最終結果;
  10. 本地DNS回覆客戶端的DNS請求,將上一步的IP地址作爲最終結果回覆給客戶端;
  11. 客戶端根據IP地址向SLB發送HTTP請求:"www.edu.lagou.com/index.html";
  12. SLB綜合考慮緩存服務器集羣中各個節點的資源限制條件、健康度、負載情況等因素,篩選出最優的緩存節點後迴應客戶端的HTTP請求(狀態碼爲302,重定向地址爲最優緩存節點的IP地址);
  13. 客戶端接收到SLB的HTTP回覆後,重定向到該緩存節點上;
  14. 緩存節點判斷請求的資源是否存在、過期,將緩存的資源直接回復給客戶端,否則到源站進行數據更新再回復。

CDN相關術語

源站:

  指發佈內容的原始站點,也就是做 CDN 之前客戶真正的服務器。

邊緣服務器(Edge Server):

  對於邊緣服務器,CDN提供了就近訪問的能力,邊緣服務器節點就是實際提供給用戶就近連接、訪問的服務器。

CDN命中率:

  CDN一般提供的是靜態加速能力,靜態加速能力通常通過緩存架構來實現,CDN命中指的是CDN服務器有該資源緩存存在,請求到達CDN節點時,CDN服務器可以在本地緩存獲取資源直接返回客戶端,如果沒有命中,則需要CDN節點到源站獲取資源。CDN命中的概率即CDN命中率。

回源:

  當CDN沒有命中緩存時,需要到源站去獲取資源,這個過程稱爲回源,回源需要從CDN節點層層代理訪問,最終到源站獲取資源。

中間層服務器:

  邊緣節點比較鬆散,因此存在緩存穿透的問題。爲了避免回源引起的性能大幅下降,在CDN的中間層服務器將多個CDN節點的訪問進行收斂,從而大幅提高命中率。

 

CDN應用場景

圖片小文件

圖片小文件適用於網站或應用中小文件的加速分發,例如各種門戶網站、電子商務類網站、新聞資訊類網站、娛樂遊戲類網站等。您需要將源站內容進行動靜態分離,靜態內容使用阿里雲CDN加速,例如圖片、CSS、JS小文件等;

解決問題

  • 終端用戶訪問慢:網站小文件內容多、打開速度太慢。

  • 跨區域訪問質量差:終端用戶分佈在不同區域,不同區域的訪問速度和質量高低不一。

  • 高併發壓力大:運營推廣期間,源站服務器壓力大,服務器容易崩潰,造成服務不可用。

  • 圖片格式分辨率處理複雜:無法根據適合的終端情況進行圖片壓縮和優化。

大文件下載

大文件下載適用於各類大文件的下載和分發加速,例如遊戲安裝包、應用更新、手機ROM升級、應用程序包下載等,平均單個文件大小在20 MB以上。

CDN加速大文件下載業務可以幫您解決以下問題:

  • 終端用戶無法下載或者下載太慢。

  • 網絡環境不穩定時,下載容易中斷,重新下載會耗費額外的資源。

  • 網站內容不安全,容易被劫持或者盜鏈,對業務造成額外的損失。

  • 高併發下載或者下載突增場景下對源站性能要求非常高,且源站的帶寬成本也較高。

視音頻點播

視音頻點播適用於各類視音頻網站,例如影視類視頻網站、在線教育類視頻網站、新聞類視頻網站、短視頻社交類網站以及音頻類相關網站和應用,您可以使用阿里雲CDN產品實現對音視頻內容的文件分發和訪問加速。

CDN加速視音頻點播業務可以幫您解決以下問題:

  • 終端用戶訪問視頻時打不開視頻或容易卡頓,觀看不流暢。

  • 視頻資源容易被劫持或盜用,版權得不到有效保護。

  • 高併發訪問或者訪問突增場景下對源站性能要求非常高,且源站的帶寬成本也較高。

CDN鑑權

參考阿里雲:https://help.aliyun.com/zh/cdn/user-guide/configure-url-signing?spm=a2c4g.11186623.0.i20

 

URL鑑權

 

http://DomainName/Filename?auth_key={<timestamp>-rand-uid-<md5hash>}

CDN服務器接到資源訪問請求後,判斷最終生成鑑權URL請求中的timestamp+鑑權URL有效時長是否小於當前時間。

  • 如果timestamp+鑑權URL有效時長小於當前時間,服務器判定過期失效,並返回HTTP 403錯誤。

  • 如果timestamp+鑑權URL有效時長大於當前時間,則以sstring方式構造出一個字符串(參考表格中sstring構造方式),然後使用MD5算法算出md5hash的值,再將計算出的md5hash值與用戶訪問請求中攜帶的md5hash的值進行比對。

    • 結果一致,鑑權通過,返回資源請求。

      說明當鑑權通過時,會去掉URL中與鑑權相關的那部分參數,可以提高緩存命中率,減少回源流量:
      • 實際生成緩存key的URL格式:http://DomainName/FileName

      • 實際回源的URL格式:http://DomainName/FileName

    • 結果不一致,鑑權失敗,返回HTTP 403錯誤。

遠程鑑權

可以通過配置遠程鑑權,將用戶請求轉發至您指定的鑑權服務器,由鑑權服務器對用戶請求進行校驗。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章