一句話總結:拍賣網站的 CDN 不只是「加速靜態檔案」這麼簡單——圖片跟 CSS 可以狂快取,但出價 API 跟即時價格絕對不能快取,搞混這兩件事,你的買家看到的就是過期價格。
你有沒有遇過這種狀況?看到一件超想要的限量公仔,點進去頁面轉了三四秒還沒載完,等你看到目前價格準備出手,結果人家早就結標了。如果你是平台方,這種「慢」直接等於「少成交一筆」。
拍賣網站跟一般形象網站不一樣,它同時有大量圖片(商品照)、即時互動(出價更新)、全球買家(海外競標者)三個特性。CDN 部署不是開個 Cloudflare 就收工,裡面有不少眉角。
CDN 是什麼?拍賣網站為什麼特別需要?
CDN(Content Delivery Network)是一套將網站內容分散到全球多個節點伺服器的網路架構,讓使用者從最近的節點取得資料,大幅縮短載入時間。 你可以把它想像成超商物流——與其讓每個買家都跑去台北倉庫取貨,不如在各縣市都設個取貨點。
一般部落格或企業官網,伺服器放台灣、流量也在台灣,其實不太需要煩惱 CDN。但拍賣網站不一樣,原因有三:
- 圖片量爆炸 — 一件拍品少說 5-10 張照片,一個中型拍賣平台上架 5,000 件商品,就是 2.5 萬到 5 萬張圖。沒有 CDN,你的主機頻寬會被吃光。
- 買家可能來自海外 — 台灣的二手精品、公仔、藝品在東南亞跟日本都有市場。東京到台北的網路延遲約 50-60ms,但到美西就是 150ms 起跳。CDN 能把這個差距壓到 20ms 以內。
- 尖峰流量集中 — 結標前 5 分鐘的流量可能是平常的 10-20 倍,CDN 幫你扛住這波突發流量,主機才不會掛。
根據 Akamai 的研究,頁面載入時間每增加 100ms,轉換率下降 7%。對拍賣網站來說,這個「轉換」就是出價——頁面慢 0.1 秒,可能就少了 7% 的出價機會。
拍賣網站的快取策略該怎麼分層?
快取策略是 CDN 部署的核心,而拍賣網站最容易踩雷的地方就是「什麼該快取、什麼不該快取」分不清楚。 我直接給一個分層表:
| 資源類型 | 快取時間 | 說明 |
|---|---|---|
| CSS / JS bundle | 1 年(搭配檔名 hash) | 檔案內容變了,hash 就變,等於自動失效 |
| 商品圖片 | 30 天 | 上架後幾乎不會改,大膽快取 |
| 分類頁 HTML | 5-10 分鐘 | 新商品上架時需要更新,但不用秒級 |
| 商品詳情頁 | 1-2 分鐘(或 stale-while-revalidate) | 價格區塊走 WebSocket 即時更新,頁面框架可以短快取 |
| 出價 API | 完全不快取 | 這是即時資料,快取等於給買家看假價格 |
| WebSocket 連線 | 不經過 CDN | 走獨立的 WebSocket 伺服器 |
這裡有個很重要的觀念:商品詳情頁的「頁面框架」跟「即時價格」要分開處理。頁面的 HTML 骨架(商品描述、圖片、規格)可以快取,但目前最高價、出價次數這些即時資料,要透過 WebSocket 即時推送來更新,不能靠快取的 HTML。
stale-while-revalidate 是拍賣網站的好朋友
這個 HTTP 快取標頭的意思是「先給使用者看快取的舊版本,同時背景去拿最新的」。設定方式:
Cache-Control: public, max-age=60, stale-while-revalidate=300
白話翻譯:60 秒內直接用快取,60-360 秒之間先回快取但背景更新。對分類頁跟搜尋結果頁特別好用——使用者不用等,但資料也不會太舊。
節點怎麼選?台灣拍賣網站要佈幾個點?
節點選擇取決於你的買家分佈,不是越多越好,而是要「打到痛點」。 以一個主力在台灣、外擴東亞的拍賣平台為例,建議的節點配置:
| 優先順序 | 區域 | 原因 |
|---|---|---|
| P0(必要) | 台灣(台北、高雄) | 主力市場,TTFB 目標 < 50ms |
| P1(重要) | 日本東京、香港 | 二手精品跟公仔的重要買家來源 |
| P2(擴展) | 新加坡、美西 | 東南亞華人、北美海外買家 |
實際數據參考:某台灣拍賣平台在導入 CDN 前後的 TTFB(Time to First Byte)比較:
- 台北用戶:380ms → 45ms(降 88%)
- 東京用戶:620ms → 80ms(降 87%)
- 洛杉磯用戶:1,200ms → 120ms(降 90%)
這些數字說明了一件事——CDN 對遠距離用戶的改善幅度最大。你的主機在台灣,美西買家不裝 CDN 就是要等 1.2 秒才看到第一個位元組,這在行動裝置上的體驗更是災難。
即時出價場景的 CDN 要怎麼處理?
即時出價是拍賣網站最特殊的場景,CDN 在這裡的角色不是「加速」而是「別擋路」。 出價請求必須直接打到 Origin Server(源站),不能走 CDN 快取。
具體做法:
- API 路由分流 — 把
/api/bids/*這類出價相關的路由設定為Cache-Control: no-store,確保 CDN 直接 pass-through - WebSocket 走獨立域名 — 比如
ws.mybid.tw,指向 Laravel Reverb 的 WebSocket 伺服器,完全不經過 CDN - 圖片跟靜態資源走 CDN 域名 — 比如
cdn.mybid.tw,這些才是 CDN 該管的
mybid.tw → 主站(HTML、API)
cdn.mybid.tw → 靜態資源(圖片、CSS、JS)
ws.mybid.tw → WebSocket(即時出價推送)
這個三域名架構的好處是職責清楚:CDN 管它的靜態資源、WebSocket 管即時通訊、主站處理業務邏輯。不會出現「CDN 把出價 API 的回應快取起來,結果買家看到的是 3 分鐘前的價格」這種恐怖狀況。
CDN 供應商怎麼挑?成本怎麼算?
選 CDN 不用追最貴的,重點是看亞太節點的覆蓋率跟計費方式。 主流選擇比較:
| 供應商 | 亞太節點數 | 免費額度 | 每 GB 價格(亞太) | 適合場景 |
|---|---|---|---|---|
| Cloudflare | 30+ | 無限頻寬(Free plan) | 免費 / Pro $20/月 | 中小型拍賣平台首選 |
| AWS CloudFront | 20+ | 1TB/月(首年) | ~$0.12 | 已用 AWS 的團隊 |
| Bunny CDN | 15+ | 無(14天試用) | ~$0.03 | 圖片量大、預算有限 |
以一個月流量 500GB 的拍賣平台估算:
- Cloudflare Pro:$20/月(固定費用,不限流量)
- AWS CloudFront:$60/月(500GB × $0.12)
- Bunny CDN:$15/月(500GB × $0.03)
Cloudflare 的免費方案其實就夠大多數新創拍賣平台用了。它的 Free plan 不限流量,只是少了 WAF 進階規則跟圖片最佳化。等流量起來再升級 Pro 就好。
如果你還在評估要自架還是用第三方平台,CDN 也是需要考量的成本項目之一,可以參考自架 vs 第三方拍賣平台的完整比較。
圖片最佳化 + CDN = 拍賣網站的加速組合拳
CDN 只是把圖片「搬得更近」,但如果圖片本身就太肥,再近也是慢。 兩者要搭配才有最大效果:
- 上傳時壓縮 — 原圖通常 3-5MB,壓到 200-400KB(WebP 格式)肉眼幾乎看不出差異
- CDN 端自動轉檔 — Cloudflare 的 Polish 功能會自動幫你把 JPEG 轉成 WebP,用戶端支援就送 WebP,不支援就送原格式
- 響應式圖片 — 手機看縮圖只需要 400px 寬,桌機看大圖才需要 1200px,善用 srcset 讓 CDN 回傳對應尺寸
一個具體案例:某二手精品拍賣平台,商品圖片原本平均 1.8MB(JPEG),導入 WebP 轉檔 + CDN 快取後:
- 圖片平均大小:1.8MB → 280KB(降 84%)
- 商品頁 LCP(Largest Contentful Paint):3.2s → 1.1s
- 行動裝置跳出率:48% → 31%
這個跳出率的改善直接反映在成交數上——少 17% 的人跑掉,就是多 17% 的人有機會出價。
實戰案例:一個拍賣平台的 CDN 導入過程
我們用一個實際場景來走一遍。假設你有一個台灣的二手拍賣平台,主機在 GCP 台灣機房(asia-east1),目前沒有 CDN,月流量約 200GB,買家 85% 在台灣、10% 在日本港澳、5% 在其他地區。
第一步:選 Cloudflare Free plan
- 把 DNS 指向 Cloudflare
- 開啟「Auto Minify」壓縮 HTML/CSS/JS
- 設定 Page Rule:
/api/*快取等級設為「Bypass」
第二步:靜態資源搬到 CDN 子域
- 設定
cdn.mybid.tw指向靜態資源 bucket - 圖片最佳化:上傳流程加入自動壓縮跟 WebP 轉檔
- CSS/JS 打包加 content hash
第三步:快取規則調校
- 商品圖片:
Cache-Control: public, max-age=2592000(30天) - 分類頁:
Cache-Control: public, max-age=300, stale-while-revalidate=600 - API 路由:
Cache-Control: no-store
第四步:監控跟調整
- 用 Cloudflare Analytics 看快取命中率(目標 > 85%)
- 用 Core Web Vitals 監控 LCP、FID、CLS
- 結標尖峰時段觀察 Origin 負載有沒有下降
FAQ
Q:CDN 會不會影響 SEO? 搜尋引擎不在意你的內容是從 CDN 還是源站回傳的,它只在意速度。Google 的 Page Experience 信號直接看 Core Web Vitals,CDN 讓你的頁面更快,SEO 只會更好。如果你想更深入了解拍賣網站的 SEO 最佳化策略,速度絕對是基本功。
Q:免費 CDN 撐得住拍賣網站的流量嗎? Cloudflare Free plan 不限流量,對月 PV 10 萬以下的平台綽綽有餘。但它的免費方案沒有 WAF 進階規則跟圖片最佳化功能,等你日流量破萬,建議升級 Pro($20/月)。
Q:CDN 掛了怎麼辦?買家會看到錯誤頁面嗎? 主流 CDN 都有 failover 機制。以 Cloudflare 為例,如果邊緣節點掛了,會自動回源(fallback to origin)。最怕的不是 CDN 掛,而是你的源站掛——所以源站的高可用(HA)才是真正要顧的。
Q:WebSocket 可以走 CDN 嗎? 技術上 Cloudflare 支援 WebSocket proxy,但不建議。WebSocket 是長連線,走 CDN 會增加不必要的跳數跟延遲。拍賣的即時出價要求延遲越低越好,WebSocket 直連源站最穩。
CDN 部署不是什麼高深技術,但對拍賣網站的體驗影響巨大。圖片秒開、頁面秒載,買家才有心情出價。花 20 分鐘設好 CDN,可能比你花 2 天改 UI 的效果還大。先把速度顧好,再來煩惱其他的——畢竟,連頁面都打不開的網站,設計再好看也沒人看得到。