【CDN 常見問題】CDN 接入配置及常見問題
時間:2023-02-20 16:22:01 | 來源:建站知識
時間:2023-02-20 16:22:01 來源:建站知識
【CDN 常見問題】CDN 接入配置及常見問題:CDN 順利接入線上系統(tǒng)的域名是每個客戶頭疼的問題,本文檔通過詳述 CDN 接入配置各步驟配置以及每部設置常遇到的疑惑點進行解惑,讓客戶可以將順利遷移至 CDN 提供加速服務。
產品文檔參考:CDN開通產品文檔
一、配置流程及概念詳解
在正常開通 CDN 服務后即可進入控制臺使用,按照產品文檔流程,我們可以依次執(zhí)行“添加加速域名”->“配置 CNAME 解析”兩個步驟進行接入。下面我們就依次詳述兩個過程。
在點擊“添加域名”按鈕后控制臺將進入詳細加速域名的配置頁面,如圖1所示。其中包括多項影響 CDN 使用情況的配置項,因此這些設置對于后續(xù)的 CDN 使用至關重要。下面我們隊每項配置詳細說明。
CDN 配置加速域名示意圖1)加速域名:表示該域名即為 CDN 的加速域名,也就是說真正在業(yè)務系統(tǒng)中提供給線上客戶使用的域名,后續(xù)所有需要 CDN 加速訪問的資源即通過該域名對外提供服務。而不能使用一個“假想域名”配置。同時這里支持泛域名加速,如果用戶有多個子域名源站為統(tǒng)一服務器 IP 希望能夠同時設置時可以配置類似于 *.
http://aliyun.com 的域名,這樣即可對
http://aliyun.com 下的所有的二級域名提供加速服務。更多泛域名注意事項請參考:CDN泛域名注意事項。
“假想域名”。常有客戶真正提供服務的域名是
http://www.aliyun.com,但是在這里添加的加速域名卻是
http://cdn.aliyun.com ,那么后續(xù)業(yè)務系統(tǒng)中繼續(xù)使用
http://www.aliyun.com 域名將不會起到 CDN 加速效果。
泛域名范圍。泛域名是有嚴格的范圍限定的。舉例來說,當配置加速域名為 *.
http://aliyun.com 時,該加速域名對應的是
http://aliyun.com 主域名下的所有二級域名。因此即該域名既不能給
http://aliyun.com 主域名提供服務,也不能給類似于
http://test2.test1.aliyun.com 這樣的三級域名提供服務的。因此使用域名與該加速域名不相匹配是需要在創(chuàng)建對應的加速域名的。例如
http://aliyun.com 只可以設置主域名為加速域名,而
http://test2.test1.aliyun.com 可以使用 *.
http://test1.aliyun.com 。
2)業(yè)務類型 ?,F(xiàn)在CDN提供圖片小文件、大文件下載、視音頻點播、直播流媒體、移動加速和全站加速幾種業(yè)務類型。業(yè)務類型一經設置將無法修改。用戶可以根據自己的主要加速的資源和業(yè)務場景選擇合適的業(yè)務類型。很多用戶對自己需要選擇的業(yè)務類型產生疑慮,這里對幾種業(yè)務類型的區(qū)別做詳細描述。
首先
全站加速 即為動態(tài)加速,正常CDN主要通過緩存機制加速靜態(tài)資源的GET請求,而對于動態(tài)請求CDN是不做加速的,這就導致對于動態(tài)站點或者大量POST請求的站點無法使用CDN,而全站加速即是針對于這類站點提供服務,其通過最優(yōu)鏈路算法及協(xié)議層優(yōu)化動態(tài)請求回源鏈路,實現(xiàn)快速回源獲取最新數(shù)據。
直播流媒體 表示該域名用來做直播業(yè)務,其接受rtmp協(xié)議的推流到視頻中心,并提供過rtmp、flv和hls幾種協(xié)議分別提供在線播放的功能,該業(yè)務類型除了常規(guī)CDN支持的http協(xié)議外還支持rtmp直播流協(xié)議。
移動加速 是CDN推出的針對于移動應用的動靜態(tài)全網加速產品,其也可以同時實現(xiàn)動靜資源加速,相比于全站加速來講本業(yè)務類型主要應用于Android或者IOS的APP上,并且其需要對APP做一定的改造以集成移動加速的SDK。
剩下的三種業(yè)務類型(
圖片小文件、大文件下載、視音頻點播 )是很多客戶困惑的點。這三種業(yè)務類型均是針對于靜態(tài)資源的GET請求加速,這三種業(yè)務類型均可以對所有的靜態(tài)文件實現(xiàn)加速功能(并不是圖片小文件業(yè)務類型僅加速圖片,其同樣可以加速大文件或者視頻;同時圖片小文件以及大文件下載也可以使用視音頻的拖拽播放功能),并且其緩存規(guī)則也是完全一致的;這三種業(yè)務類型主要CDN針對于不同類型的文件做了不同的TCP協(xié)議棧的優(yōu)化策略。因此用戶結合自己的業(yè)務場景的資源進行選擇即可。如果主要資源為圖片文件、樣式文件、js文件等可以使用圖片小文件類型、如果主要資源是apk包、程序安裝文件等可以選擇大文件下載類型,而如果主要資源是視頻資源提供在線點播播放的話則可以使用視音頻點播類型。
3)源站類型和源站地址 :表示CDN回源到源站服務器的類型及其地址?,F(xiàn)在支持IP、源站域名、OSS源站、直播中心服務器幾種類型。下面我們詳細對幾種類型進行詳細描述。
IP,顧名思義即是源站服務器的IP。這里特別需要注意的是CDN的源站不管是在阿里云上的ECS、SLB等服務、其他的云服務提供商的服務還是IDC機房的物理機,其回源都是走的公網鏈路回源的。因此這里填寫的IP必須是公網IP,否則將導致CDN回源出現(xiàn)5XX的錯誤。同時這里是可以設置源站為IP的,并且可以根據該IP對應服務器能夠承載的壓力設置其優(yōu)先級。關于多源優(yōu)先級的說明請參考多源優(yōu)先級設置。這里需要特別注意的一點是當CDN設置為多源時,用戶是需要自行保證每臺服務器上對應的資源均是完整并且同步的。常有客戶誤解這里的多源表示我在主服務器上查找某資源發(fā)現(xiàn)不存在返回404的錯誤,然后CDN會自動去備服務器上查找該資源,CDN是不會進行該操作的。只要某一條服務器四層健康檢查通過返回任何的狀態(tài)碼(2XX、3XX、4XX或者5XX)都會直接返回給客戶端的。
域名,表示解析在源站服務器上的域名。其在CDN上的作用是會將該域名解析為IP,然后按照與上述的IP回源一致到該服務器上獲取資源。因此域名其實與IP基本類似,設置為域名的場景主要是用戶的源站服務器IP經常會發(fā)生變動,而為了避免源站服務器IP變動導致CDN回源異??梢赃@里設置為域名,這樣用戶僅需要保證該域名可以正常解析即可,并不需要再修改CDN的配置。另外這里的域名僅僅是用來解析成IP的,源站服務器上如果有多個站點需要哪個站點提供服務并不是根據該設置決定的,而是根據回源host設置決定的。
OSS域名,CDN加速OSS是常見的使用場景,其使用方法及常見問題請參考【 CDN 最佳實踐】CDN 加速 OSS 常見問題及處理思路。如果需要回源到本賬號中的OSS可以這里直接選擇對應bucket的公網域名即可。但是如果需要回源到其他賬號的bucket中的話是需要設置源站類型為域名,然后自行填寫該bucket的公網域名。同時請注意OSS域名類型是不支持多源設置的。
最后一種直播中心服務器是當選擇直播流媒體業(yè)務類型系統(tǒng)自動配置的,并不需要用戶自己配置。
L1和L2節(jié)點網絡。CDN的節(jié)點是分兩層架構的(CDN架構請參考CDN基礎架構),其中L1是靠近客戶端的,會根據客戶端的local dns分配就近的同一運營商的節(jié)點,因此L1節(jié)點是區(qū)分具體運營商的,而L2是靠近源站服務器端的節(jié)點,為了保證CDN回源不會受到網絡隔離導致回源異常,因此CDN的L2的節(jié)點均是BGP網絡類型的,用戶上述配置的源站服務器是不需要擔心自己的服務器是單線服務器導致CDN回源異常的。
健康檢查。在將服務器IP加在CDN上后,CDN是會定期做健康檢查,主要包括四層的網絡監(jiān)察,因此用戶的源站服務器日志可能會記錄到CDN的健康檢查的日志的。當設置為多源回源時當某臺服務器健康檢查失敗即暫時不會回源到該服務器,而選擇其他的服務器回源,避免由于源站單臺服務器異常導致線上異常。
4)端口 :表示CDN回源時與源站的哪個端口獲取數(shù)據。CDN支持的回源端口包括80和443,分別對應HTTP協(xié)議和HTTPS協(xié)議。這里如果設置為443端口時用戶是需要保證源站服務器對應端口的server是配置好SSL證書的。
5)加速區(qū)域 :對于L3以上的客戶是可以選擇CDN的海外加速的,客戶是可以根據自己的服務對象選擇對應的CDN的加速區(qū)域,現(xiàn)在可以選擇中國大陸、全球加速和港澳臺及海外三種類型。如果這里選擇的是中國大陸,那么該域名的調度節(jié)點是僅有中國大陸內的L1和L2節(jié)點。那么這個時候海外的客戶也是會調度到大陸的節(jié)點,其訪問就有可能受國際鏈路波動影響導致訪問異常的。
二、配置CNAME解析
在配置完成CDN加速域名后用戶即可得到對應的CNAME域名,如圖2所示即是對應的CNAME域名。用戶接下來即可配置加速域名對應的CNAME解析后即可。
CDN CNAME域名示意圖詳細的CNAME解析設置請參考CDN域名CNAME解析設置,這里需要特別注意的是主機記錄必須與CDN添加的加速域名一致(泛域名需滿足統(tǒng)一級別)。
DNS解析限制同一個主機記錄只能夠保留一個A記錄或者CNAME記錄,否則添加將會導致沖突。因此想要添加CDN是需要刪除之前解析到源站服務器的A記錄并添加對應的CNAME記錄,等TTL時間后才可以生效的。
為了保證切換CDN后不影響業(yè)務,建議先通過綁定hosts的方式先本地測試添加CDN后正常再正式修改DNS記錄。不同系統(tǒng)有不同綁定hosts的方法(例如Mac、linux系統(tǒng)中可以使用/etc/hosts文件設置)。具體設置方法步驟為:
- ping CDN提供的CNAME地址得到CDN節(jié)點的IP,如圖3所示。
CDN 節(jié)點IP獲取示意圖- 修改/etc/hosts文件將該域名設置解析到該IP上,如圖4所示。
綁定hosts配置示意圖三、驗證CDN生效情況
在配置完成dns解析后可以通過多種方法驗證CDN是否生效。包括以下三種方法:
- 通過ping你所添加的加速域名,如果被轉向.kunlun*.com的域名,即表示CDN功能已生效,如圖5所示。
通過ping驗證解析生效示意圖- 通過 nslookup或dig命令,可以查看相應的加速域名訪問CDN節(jié)點的IP和延時丟包等基本信息。用戶可以根據解析出來的IP在CDN的控制臺上的IP檢測工具查看是否為CDN節(jié)點的IP,是的話就說明CDN已生效:
CDN檢查IP是否為CDN節(jié)點IP示意圖- 用戶也可以獲取對應加速域名的資源的response頭查看是否有CDN加速對應的節(jié)點信息來判斷CDN是否生效,如圖7所示,如果response頭中包括Via、X-Cache等頭就表明其已經CDN加速。
CDN查看response頭示意圖了解更多請微博關注阿里云客戶滿意中心