[WordPress] 客製化自己的內容傳遞網路(CDN)服務筆記

本篇文章更新時間:2022/09/01
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣新台幣 贊助支持。


關於內容傳遞網路(CDN)的介紹,這裡就不多說了,有興趣的人可以看看 Cloudflare 的文件

而 CDN 作法沒有一定,概念就是把資源請求分散出去,理想的情況是會根據你的請求地來判斷,給離你最近的主機來提供服務。

但最基礎就是「把資源提供改由其他主機服務」!

常見的 CDN 作法就是把要分散處理的資源(靜態網頁檔案或圖檔等)放到另一台主機,然後網頁中的連結改成這台新主機的路徑。

Cloudflare 的做法比較奇特,從 DNS 端就包裝過,你請求被 Cloudflare 包裝的網站,它派爬蟲回原網站照原本請求取資料,然後把資料暫存在他們主機上。好處不只有方便,還包含隱密性,很高級的玩法!

WordPress 的系統和社群生態都很完整,WordPress.com 的商業服務方案裡,還提供免費且開源的 CDN 給 Jetpack 外掛用戶使用:Photon 現在已更名叫「Site Accelerator 網站加速器」。

這邊要注意儘管可以用別的方式不安裝 Jetpack 外掛使用這個 CDN,但這做法是違背他們的使用條款的。

Photon 的 CDN 做法很彈性,對於內容不斷推陳出新的部落格來說也很方便實用,透過 Jetpack 外掛對輸出的網站內容,把靜態資源(圖片)路徑改成 https://xx.wp.com/你的圖片連結 方式來一邊抓取你的圖片一邊快取著圖片來提供 CDN 服務。

這樣的流程與上述說的「放到另一台主機」並無差異,主要就是解決了「怎麼放」這件事。

像 AWS S3 或 GCP Cloud Storage 這樣的 Object Storage 物件儲存服務也是很多人的 CDN 選擇,但對 WordPress 使用者來說,他的上架流程會是從上傳媒體庫時就順便複製一份到雲端上,插入媒體到文章的時候是輸入 CDN 的圖片連結。

[WordPress] 使用 AWS S3 當網站的靠山 – 靜態內容生成
[WordPress] CDN 的新選擇 Google Cloud Storage
[WordPress] 使用 DigitalOcean Spaces Sync 實作 CDN 加速網站

不過這種架構複雜度不低,對於第一時間緩解與測試流量算是用上大刀了!

本篇筆記會是朝著像 Photon 這樣的做法來搜集實作相關資料:

  • 如果想自己架設一個 Photon 的服務,Running a private Photon instance 這篇文章把一個架設的過程記錄下來,可以參考。畢竟 Photon 是開源的,補上一些自己的邏輯也是有必要,不然可能也會被人誤用!
  • Imageproxy - A caching, resizing image proxy written in Go 另一款用 Go 寫的類似服務,搭配 Nginx 做 Reserv Proxy 也是一招。
  • Edgar Image Edgar Image is a image transformer that runs in a docker image which you can host where you want and put behind Cloudflare to cache the response. 這一款也是用 Go 實作,不過還有包在 Docker 裡當服務跑。
  • My Image Cdn 一個韓國人實作的 PHP 版本,雖然功能只有快取,沒有縮圖的選項,但已經能用了。

上面的選項都是可以單獨作為一個 CDN 後端來使用,甚至要改寫成自己情境使用也不算費功夫了。

至於 WordPress 網站這邊,不使用 Jetpack 外掛的前提下,可以使用 My Photon 這款來對接自己的 Photon 後端。又或是使用 CDN Enabler 這款外掛把網站上靜態資源路徑動態改寫來套用 CDN 後端。

會這樣去組合完全都是為了保留架構(荷包)彈性,面對成長起來的流量,用這個方式可以做到減少第一時間對主機的請求數,提高網站能服務的量能,再來是如果 CDN 服務掛了,也不至於全站死圖,改回來同主機請求即可。

最後補充個有趣的開源專案 WebPConvert Cloud Service - Cloud service for WebP conversion 大概算是 WebP Convert 這個作者的閒暇之作,把自己寫的圖片格式轉換工具弄了一個線上轉換版本,對於實作縮圖且轉換圖片格式有興趣的人多了一個參考囉~


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[///////////____36%_________]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Apply Filters
Mastodon