0. 說明與準備
概念說明
自建需求
- 快速滿足市場需求:善用雲端資源,目標市場在哪裡,節點就在哪裡。
- 為現有資源賦能:現有伺服器及線路,直接加值做 CDN 服務。
- 彈性分配預算:使用雲端或混合雲架構,CDN 規模自行決定。
- 靈活的策略配置:依照網站用途、地區、產業及市場規劃佈局。
我需要準備什麼?
INODENINJA CDN 服務粗略來分的話,由三個部份組成
- CDN 平台(主控端):負責 DNS 解析、資料分析、憑證申請、用戶管理、API..等。
- CDN 節點上的應用程式 (SLB/EDGE):負責資料解析、處理、回應與轉發。
- 作為 CDN 節點的主機:負責運行節點應用程式的主機(安裝程式後扮演「節點」的角色)。
只要準備主機!
其中 CDN 平台與 CDN 節點應用程式由 INODENINJA 提供
我們只需要準備「作為 CDN 節點的主機」,即可開始建立。
基本架構
元件組成
作為快速入門,我們將會以下面的圖作為入門範例
- 源站(含域名)x1:欲使用 CDN 的域名 (僅為建立架構示範使用)
- Site x1:控制域名與 SLB 之間的解析映射
- SLB x1:TCP Layer 流量轉發,作為負載均衡器使用
- EDGE x1:HTTP Layer 流量解析、緩存等處理

① 在 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、或各大雲廠商提供的虛擬主機,建議規格為 2 Core 4 G。
可以上網:節點(SLB/EDGE)需要與主控端連接
與主控端連接是由節點主動發起,所以節點需要允許發送請求至主控端。
可以被存取:注意防火牆是否允許存取
SLB 需要允許用戶存取;EDGE 則需要允許 SLB 存取。
安裝Docker: 節點(SLB/EDGE)應用程式使用容器運行,故需要 Docker 環境。
Docker 安裝可以參考在 Linux 主機上安裝 Docker