0. 說明與準備

0. 說明與準備

概念說明

自建需求

  • 快速滿足市場需求:善用雲端資源,目標市場在哪裡,節點就在哪裡。
  • 為現有資源賦能:現有伺服器及線路,直接加值做CDN服務。
  • 彈性分配預算:使用雲端或混合雲架構,CDN規模自行決定。
  • 靈活的策略配置:依照網站用途、地區、產業及市場規劃佈局。

我需要準備什麼?

INODENINJA CDN服務粗略來分的話,由三個部份組成

  • CDN平台(主控端):負責DNS解析、資料分析、憑證申請、用戶管理、API..等。
  • CDN節點上的應用程式(SLB/EDGE):負責資料解析、處理、回應與轉發。
  • 作為CDN節點的主機:負責運行節點應用程式的主機(安裝程式後扮演「節點」的角色)。

只要準備主機!

其中CND平台與CDN節點應用程式由INODENINJA提供

我們只需要準備「作為CDN節點的主機」,即可開始建立。

基本架構

元件組成

作為快速入門,我們將會以下面的圖作為入門範例

  • 源站(含域名)x1:欲使用CDN的域名 (僅為建立架構示範使用)
  • Site x1:控制域名與SLB之間的解析映射
  • SLB x1:TCP Layer流量轉發,作為負載均衡器使用
  • EDGE x1:HTTP Layer流量解析、緩存等處理

DeepinScreenshot_select-area_20230310170147

① 在CDN建立域名後,會產生一組「接入CNAME地址」,用戶將域名指向到此地址後,請求將透過CDN處理。
② 在域名配置中選擇站點(Site),平台會將「接入CNAME地址」映射至該站點。
③ 站點實際為SLB節點組成的虛擬物件,因此域名選擇站點也相當於指定域名使用的SLB節點。
④ 在SLB節點中配置上游EDGE節點,請求會透過SLB節點轉發至指定的EDGE節點。
⑤ EDGE節點經過對應的處理(緩存,WAF等),轉發請求至源站(Origin Server)
⑥ 圖中綠色的「雲」,則是INODENINJA CDN區域。(所以說上述的「接入CNAME地址」,即是接入INODENINA CDN的意思)

準備作業

兩台節點主機

兩台可以上網的主機(Linux Host)作為節點,並且安裝Docker

  • 兩台:一台做為SLB, 一台做為EDGE

不能將兩個程式運行在同一台主機上,否則會互搶端口。

  • 主機(Linux Host):

可以是實體伺服器、ESXI/Proxmox VM、或各大雲廠商提供的虛擬主機。

  • 可以上網:節點(SLB/EDGE)需要與主控端連接

與主控端連接是由節點主動發起,所以節點需要允許發送請求至主控端。

  • 可以被存取:注意防火牆是否允許存取

SLB需要允許用戶存取;EDGE則需要允許SLB存取。

  • 安裝Docker: 節點(SLB/EDGE)應用程式使用容器運行,故需要Docker環境。

Docker安裝可以參考在 Linux 主機上安裝 Docker