1. 程式人生 > >第一次親密接觸——二狗子初識 CDN

第一次親密接觸——二狗子初識 CDN

二狗子是國內知名XXX大學的在校學生,作為一名程式設計愛好者,他利用業餘時間搭建了一個網站,把平時的學習心得和技術分享全都 PO 在自己的網站上。漸漸地,二狗子的網站因為文章質量高,技術分享全面,受到了很多愛好者的關注。

可是最近二狗子卻有些苦惱。

有部分網友反饋訪問網站時,速度特別慢。二狗子本地測試訪問,卻沒有出現訪問慢的情況。檢視伺服器的執行情況,出口頻寬沒有跑滿,主機狀態也是正常的。那是怎麼回事呢?

經過一段時間的資訊收集,二狗子發現訪問慢的網友大部分都集中在甘肅、陝西這些西北部方向的聯通使用者。“會不會是因為跨網跨運營商產生的問題?”二狗子心想。自己網站的雲主機部署在華東電信區,同區域的網友訪問並不會出現訪問慢的問題,於是二狗子找到了在北京上學的同學,拜託他幫忙測試訪問一下自己的網站。

北京訪問也慢!同學花了 15 秒才看到網站首頁“二狗子最帥”五個大字。

看來問題可以確定了,應該是跨地區跨運營商導致的,以致於不同區域、使用不同網路的使用者訪問自己網站的速度不穩定。

“得想辦法解決這個問題啊。”二狗子開始思索。

既然是跨區跨網導致的訪問受限,那自己多買幾條線路,在幾個區域都部署一個伺服器不就行了?這個想法剛冒出來,二狗子就笑自己了。且不說多開幾個主機,網站維護時間變長,運營成本也上去了呀,自己還是個學生,最重要的任務還是學習。當然,最主要的原因還是因為窮,荷包裡的錢暫時也支撐不起多租主機產生的費用。

那怎麼樣才能實現,在保持現有一臺主機的狀態下,實現多網多地區的加速訪問呢?

“加速?對呀!可以使用 CDN 來進行加速呀!”二狗子突然醍醐灌頂。

又小拍提醒:CDN 就是用來解決因分佈、頻寬、伺服器效能帶來的網路訪問延遲問題,適用於站點加速、點播、直播等場景。CDN 廠商會在各網各地區部署節點,在接入 CDN 後可使使用者就近取得所需內容,儘可能避開網際網路上有可能影響資料傳輸速度和穩定性的瓶頸和環節,從而提高使用者訪問網站的響應速度和成功率。

最開始建站時,二狗子純粹是出於對技術的喜愛,以及抱著提供一個可以分享開發心得和交流的平臺來做的。現在加入的網友越來越多,每天的訪問量也在逐步提升,網站頁面上,圖片、視訊、指令碼等物件也越來越龐大。自己的主機目前還扛得住現階段的請求量,但後期如果繼續發展,使用者繼續增加的話,主機效能和出口頻寬就有點不夠用了。

現在接入 CDN 的話,一方面可以解決跨網跨區訪問慢的問題,另外還可以把這些靜態類的物件丟給 CDN 節點快取,自己的主機只需要接受一些文章釋出、評論釋出這些動態類的請求,主機壓力就小了很多了!

二狗子不由得興奮了起來,說幹就幹,下課後二狗子就跑回了宿舍進行 CDN 廠商調研。自己還是個學生,CDN 費用上要儘可能的低一些,最好有一些優惠,操作配置要儘可能的簡單一些,碰到問題廠商解決的效率要快一些,業內口碑也要好一些……

“有了!”二狗子興奮道,“這家應該不錯。”

“又拍雲是國內一家知名的 CDN 服務商,1100+ 全球節點,10Tbps 頻寬儲備,國內主流運營商支援,提供物件儲存、HTTPS/SSL 證書、多媒體處理、影像識別、文字識別等多項服務,支援 WebP 自適應、H.265 自適應、位元速率適配限速、分段快取、防盜鏈等功能。個人建站使用者還可以申請加入又拍雲聯盟,稽核通過後每月可獲得 10GB 儲存空間 + 15GB 流量。”

那麼,就先試用一下又拍雲好了。

又小拍提醒:又拍云為開發者提供了又拍雲聯盟平臺,申請加入聯盟後,開發者可以免費獲取每月 10GB 儲存空間 + 15GB 流量。

二狗子很順利的完成了一系列操作,在又拍雲控制檯上,跟著配置嚮導,分分鐘就建立好了 CDN 服務。

“嗯,現在 CDN 服務建立好了,CDN 到自己源站的通道已經建立了,原先的網站域名用來當做加速域名,這樣的話需要更改一下域名的解析記錄,把域名的解析導向 CDN 服務。這樣,後續網站使用者訪問我的域名,就可以無縫接入 CDN 服務,由 CDN 響應資源了。”

又小拍提醒:CDN 有幾個術語您需要了解一下哦:
源站
在接入 CDN 之前開發者真正的伺服器或者雲主機,統一稱之為源站。
加速域名
指用於訪問 CDN 服務的域名,該域名是繫結在 CDN 服務中的。在開發者配置好 CDN 服務後,客戶直接訪問的就是加速域名,而不是源站了。
CNAME 記錄

別名記錄( Canonical Name ),CNAME 記錄就是把域名解析到另外一個域名。為什麼需要使用CNAME 記錄呢?是因為 CNAME 記錄可以很方便地變更 IP 地址。CDN 廠商有眾多節點,每個節點的 IP 都是不同的,如果把全部 IP 節點告訴開發者,由開發者自行配置,那麼不光步驟繁瑣,後續節點變動修改也會異常麻煩。但是如果使用 CNAME 記錄的話,開發者只需要配置一次域名的 CNAME 解析,後續節點變動就交由 CDN 廠商來進行了,省去使用者配置上的繁瑣步驟。
CNAME 域名配置在 CDN 的域名需要用到 CNAME 域名來配置 CNAME 解析,在又拍雲控制檯配置完成CDN 服務後,開發者會得到一個 CNAME 域名(該域名一定是 .http://b0.aicdn.com,其中 處就是開發者的 CDN 服務名), 使用者需要將繫結在 CDN 的加速域名做 CNAME 解析,解析地址就是這個 CNAME 域名,這樣,當用戶訪問加速域名的時候,所有的請求都會指向又拍雲 CDN 服務,從而實現加速效果。

二狗子在控制檯複製了 CDN 對應的 CNAME 域名地址,然後在對應的域名解析控制檯進行 CNAME 解析配置。

“好了!這樣設定後,應該就把使用者-CDN-源站的關係建立起來了。”二狗子想了想現在的網站訪問關係。

“那麼,接下來就來驗證一下,配置是否生效了吧!”二狗子想了想,“首先看一下,使用者訪問加速域名,是否可以請求到 CDN 節點吧。”最簡單的辦法就是使用 ping 命令測試一下訪問域名,看看返回的 IP。

ping 加速域名,返回的節點已經是 CDN 的節點 IP 了,二狗子拿著這個 IP 在又拍雲控制檯上查了一下。

“嗯,看來沒有太大問題,使用 dig 看域名解析也是對的。這還真不錯,可以完美的隱藏掉我的雲主機 IP 地址。”

“現在使用者可以通過加速域名訪問到我的 CDN 服務了,那麼 CDN 回我的雲主機服務是否正常呢?”

二狗子開啟瀏覽器,輸入了域名,回車。“棒!”瀏覽器很快就加載出了熟悉的畫面。

開啟瀏覽器的控制檯,遠端地址已經不是自己源站的 IP 資訊了,Server 響應頭的值說明響應來自於 CDN 的節點。

二狗子看了一下主機的日誌資訊,已經記錄到來自 CDN 的回源訪問請求了。

這樣,二狗子的網站就成功接入了 CDN 了。

二狗子請之前反饋訪問慢的網友再訪問試試,大家紛紛反饋網站現在開啟速度非常迅速,不像之前需要等待十幾秒才能把頁面加載出來。二狗子很高興,終於把之前的問題和擔憂都解決了。“又拍雲 CDN 真是個好東西,我要好好的寫一篇文章來分享一下這個方便的工具。”

推薦閱讀:

工信部要求應用商店上新 App 檢查 IPv6,這裡有一份 IPv6 快速部署指南​

讀完這篇文章,5G 就沒有祕密