CDN 加速 OBS 圖床

举报
yd_219491735 发表于 2026/10/27 20:52:38 2026/10/27
【摘要】 上一篇用 OBS 搭好個人圖床後,直接拿桶域名當圖片連結又慢又卡。這篇把 CDN 接上去:開通 CDN、添加加速域名並以 OBS 桶域名為源站,配好回源、緩存、防盜鏈與 HTTPS,讓圖片就近取圖。

上一篇用華為雲 OBS 搭好了個人圖床:建桶、上傳、桶策略開放匿名讀取、防盜鏈都跑通了。但直接拿 OBS 桶域名當圖片連結,讀者每次都要回到桶所在的區域拉圖,距離一遠就慢,跨網訪問更卡。這一篇就把 CDN 接上去:用自己的加速域名對外提供圖片,讓邊緣節點就近回應,OBS 只負責當源站。

一、為什麼圖床需要 CDN

圖床圖片的特點是小檔案、高讀取量,而且讀者可能分布在各地。只用 OBS 直鏈會有三個問題:

  • OBS 直鏈回源慢:每一次請求都要回到桶所在區域取圖,讀者離桶越遠,首字節時間越長,文章裡十幾張圖就會一張一張慢慢出現。
  • 跨網訪問卡:不同營運商、不同地區到 OBS 機房的路徑品質不一樣,晚高峰更容易卡頓。
  • 流量費用不好控:所有請求都直接打到 OBS,熱門文章一來,流出流量跟著暴漲;被盜鏈時也一樣,費用由桶主承擔。

CDN 的做法是把圖片快取到離讀者最近的邊緣節點,命中快取的請求不用回源站,載入快、源站壓力小,也更容易搭配防盜鏈與 HTTPS 統一管理。

二、開通 CDN、添加加速域名,以 OBS 桶域名為源站

操作流程大致如下:

  1. 在華為雲控制台開通內容分發網絡 CDN 服務。
  2. 進入 CDN 控制台的「域名管理」,點「添加域名」。
  3. 加速域名填自己的域名,例如 img.example.com,並按提示完成域名解析,把該域名 CNAME 到 CDN 分配的加速域名。
  4. 業務類型選擇適合圖片場景的類型,例如圖片小文件。
  5. 源站類型選擇「源站域名」,填寫 OBS 桶域名,格式為 桶名.obs.區域.myhuaweicloud.com,例如 my-blog-images.obs.cn-north-4.myhuaweicloud.com。

要注意:加速域名要填自己的域名,不是填 OBS 桶域名;OBS 桶域名是放在源站位置的。添加後先等域名狀態變為「已啟用」,再用加速域名訪問一張已上傳的圖片,能正常顯示才算接通。

三、回源配置:源站選 OBS 桶域名,回源協議跟隨或 HTTPS

源站接通後,重點檢查回源配置:

  • 源站:保持為 OBS 桶域名,不要改成源站 IP,OBS 不提供固定源站 IP。
  • 回源協議:建議選擇「跟隨」,即讀者用 HTTP 訪問就 HTTP 回源,用 HTTPS 訪問就 HTTPS 回源;如果加速域名已配置 HTTPS,也可以直接選擇 HTTPS 回源,讓 CDN 到 OBS 之間全程加密。
  • 回源 HOST:建議設為源站域名,也就是 OBS 桶域名。CDN 回源時帶的 HOST 決定了 OBS 認為請求的是哪個桶,設錯了容易回 403。

改完回源配置後,用瀏覽器無痕視窗打開一張圖片的加速域名連結驗證一次;若出現 403,先檢查 OBS 桶策略是否仍開放匿名讀取,再檢查回源 HOST 與桶域名是否一致。

四、緩存配置:圖片後綴緩存時長、忽略 URL 參數

圖片內容不常變,適合長時間緩存。在 CDN 控制台的域名「緩存配置」裡可以這樣設:

  • 按文件後綴設緩存時長:jpg、jpeg、png、gif、webp、svg、avif、ico 等圖片後綴,緩存時長可以設長一點,例如 30 天;html 這類會變動的內容則設短或不緩存。
  • 忽略 URL 參數:開啟後,logo.png?v=1 與 logo.png?v=2 會被視為同一個緩存對象,只存一份,緩存命中率更高。要注意的是,如果圖片是靠 URL 參數做不同尺寸裁切的,就不要開啟,否則不同參數會拿到同一張圖。
  • 緩存遵循源站:若 OBS 端已設置了緩存策略,也可以選擇遵循源站,CDN 按源站返回的緩存頭決定緩存時間。

圖片更新後不要只換內容不換檔名:要嘛改檔名重新上傳,要嘛用 CDN 的刷新功能清掉舊緩存,否則讀者看到的還是舊圖。

五、防盜鏈 Referer 配置,並與 OBS 桶策略配合

圖床公開之後,最怕別人直接引用你的圖片連結,流量費由你出。CDN 與 OBS 要分工配合:

  • CDN 防盜鏈:在加速域名的「防盜鏈」配置中開啟 Referer 防盜鏈,設置白名單,只允許自己的博客域名與華為雲社區域名,例如 *.example.com、bbs.huaweicloud.com。建議允許空 Referer,否則讀者在瀏覽器地址欄直接打開圖片也會被擋住。
  • OBS 桶策略:保持上一篇的做法,桶策略只開放匿名讀取,不開放寫入與刪除。CDN 的防盜鏈只對加速域名生效,不能替代桶策略。
  • 統一用加速域名:文章裡只貼加速域名的圖片連結,不要再貼 OBS 桶域名直鏈。直接訪問 OBS 桶域名是不經過 CDN 的,CDN 的防盜鏈也管不到它。

設置完成後,用一個不在白名單的頁面引用圖片測試,應該被拒絕;再用自己的博客頁面打開,圖片正常顯示才算通過。

六、HTTPS:CDN 證書配置與 OBS 桶域名證書

圖片連結走 HTTPS,才能避免瀏覽器報不安全,也才能與全站 HTTPS 的博客正常混用:

  • CDN 證書配置:在加速域名的「HTTPS 配置」中開啟 HTTPS,證書來源可以選擇雲證書管理 SCM 中的證書,也可以上傳自有證書。已有免費 DV 證書的,可以直接在 SCM 中選用對應域名的證書。
  • 強制跳轉:建議開啟 HTTP 到 HTTPS 的強制跳轉,讓舊的 HTTP 圖片連結自動跳到 HTTPS,避免混合內容問題。
  • OBS 桶域名證書:OBS 桶域名本身支持 HTTPS 訪問,回源協議選 HTTPS 時,CDN 到 OBS 之間也是加密傳輸,不需要另外給桶域名配證書。

證書到期前記得在 SCM 續期或更換,證書過期會導致加速域名無法正常訪問。

七、驗證與費用:刷新預熱、訪問測速對比、賬單注意點

接好之後要驗證效果,也要看緊費用:

  • 刷新預熱:圖片更新後,在 CDN 控制台用「刷新預熱」功能,URL 刷新針對單張改過的圖,預熱則是把熱門圖片提前推到邊緣節點。目錄刷新影響範圍大,操作前要確認目錄。
  • 訪問測速對比:用瀏覽器開發者工具或 curl -I 訪問同一張圖的加速域名與 OBS 直鏈,對比載入時間;也可以查看響應頭,確認是否命中邊緣緩存。命中緩存時回應更快,回源次數也更少。
  • 賬單注意點:CDN 主要按流量計費,另有請求數等費用;CDN 回源從 OBS 拉取圖片時,OBS 端也會產生流出流量費用。建議在費用中心設置用量告警,定期查看 CDN 與 OBS 的流量賬單,熱門文章發布前先確認餘量。

小結

給 OBS 圖床接 CDN,核心就五步:開通 CDN 並添加加速域名、以 OBS 桶域名為源站、配好回源協議與回源 HOST、按圖片後綴設好緩存、再用 Referer 防盜鏈與 HTTPS 把訪問管起來。接通後文章裡的圖片連結全部換成加速域名,讀者就近取圖,速度與費用都更好控。

下一篇:ECS 安全組配置實戰。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。