BunnyCDN 配置与回源优化教程

BunnyCDN 配置与回源优化配置指南

如果你的站点需要一套按量计费、操作直观的 CDN,并且预算不允许使用 Akamai 这类企业方案,那么 BunnyCDN 配置 是最容易上手的选择之一。它的 Standard Tier 流量起步价约为每 GB 0.005 美元,覆盖五大洲 100 多个边缘节点,控制台几乎不需要培训就能用。本文将教你如何从零完成一个 Pull Zone(拉取式分发区域,CDN 主动回源拉取资源的配置单元)配置,覆盖回源 Shield、Edge Rules、Permaperma Cache 与常见故障排查,帮你解决”上线后命中率上不去、回源费用高于流量费”这类问题。

一、BunnyCDN 适合什么场景

判断 BunnyCDN 是否适合你的站点,可以参考三个维度:流量预算、内容类型与覆盖区域。BunnyCDN 的优势在于价格透明、节点覆盖均衡(欧美亚都有节点)、控制台简洁,劣势在于国内三网延迟比 Cloudflare China Network 高、缺乏 WAF(Web Application Firewall,Web 应用防火墙)等深度安全功能。如果你的站点以海外用户为主、内容偏静态资源(图片、视频、字体)、想在每月 50 美元以内拿到全球加速,BunnyCDN 几乎是首选。

如果你的源站在香港或美国 CN2 线路,BunnyCDN 可以做静态资源边缘缓存,动态请求继续直连源站。回源主机的线路选择可以参考 WordPress 香港主机选购指南云服务器选购指南,跨境链路(Cross-Border,跨越国界的网络通信)质量决定边缘节点未命中时的回源耗时。

二、创建 Pull Zone 与基础配置

登录控制台后选择 CDN → Add Pull Zone。填写关键字段:

  • Origin URL:源站地址,例如 https://origin.yourdomain.com。一定要带协议,否则回源走 HTTP 引发混合内容。
  • Pricing Tier:Standard 适合 90% 场景,High Volume 流量优惠但不覆盖部分非洲节点。
  • Edge Rules:先空着,后续按需添加。

创建完成后会得到一个 b-cdn.net 子域,绑定到自定义子域名(如 cdn.yourdomain.com)的步骤为:在 DNS 服务商添加一条 CNAME 指向 <your-zone>.b-cdn.net,然后在 Pull Zone 设置中点击 Add Hostname 并启用 Force SSL。BunnyCDN 会自动签发 Let’s Encrypt 证书,通常 5 分钟内生效。

三、回源 Shield 与 Tiered Cache

回源 Shield(Origin Shield,源站盾)是把多个边缘节点的回源请求收敛到单个”中心节点”的功能。开启后,全球边缘节点未命中时不会各自发起独立回源,而是先到 Shield 节点查询,命中后直接由 Shield 返回。这能把源站负载降低 40% 到 70%。

在 Pull Zone → Caching → Origin Shield 中启用,选择离源站最近的节点。例如源站在美国西部洛杉矶,选择 Los Angeles 作为 Shield;源站在香港,选择 Hong Kong 作为 Shield。Origin Shield 按 GB 单独计费,价格约为流量费的 30%,对回源带宽费用敏感的源站尤其值得开启。

如果你希望进一步降低源站压力,可以在 Shield 上层叠加 Permaperma Cache。开启后,已经写入 Permaperma 的资源会永久保留在边缘磁盘,直到主动清除。适合静态资源且变更极少的站点,例如电商商品图片、字体文件、PDF 手册。需要注意的是:Permaperma Cache 不会自动失效,发布新版本资源时必须用 URL 版本号或主动 Purge。

四、Edge Rules 实战

Edge Rules 是 BunnyCDN 的边缘逻辑层,类似 Cloudflare 的 Page Rules / Cache Rules。在 Pull Zone → Edge Rules 中可以创建最多 10 条免费规则,每条规则包含触发条件与动作。典型场景:

  • 强制 HTTPS:触发条件 Request URL 匹配 http://*,动作 Force SSL
  • 路径级 TTL:触发条件 URL Path 匹配 */images/*,动作 Override Cache Time 为 30 天。
  • 绕过缓存:触发条件 URL Path 匹配 /wp-admin/*/api/checkout/*,动作 Bypass Cache
  • 添加响应头:动作 Set Response Header,例如添加 x-cdn: bunny 方便排查。
  • 地区跳转:触发条件 Country Code 匹配 CN,动作 Redirect 到国内镜像。

实际配置时建议先用一条最简单的规则验证生效顺序,再叠加复杂逻辑。规则按从上到下顺序匹配,首条命中后即停止。如果你同时在源站和 BunnyCDN 设置了 cache-control,BunnyCDN 默认遵循源站头,Edge Rules 的 Override 优先级更高。

五、回源优化与压缩

回源链路的优化点集中在三处:HTTP/2 启用、Brotli 压缩与 Range 请求支持。BunnyCDN 默认对源站发起 HTTP/1.1 请求,可以在 Pull Zone → Origin 中切换到 HTTP/2,但要求源站支持。如果你不确定,可以用命令测试:

curl -I --http2 https://origin.yourdomain.com

返回头若包含 HTTP/2 200,说明源站已支持。

Brotli 压缩对文本资源的体积优化通常比 Gzip 多 15% 到 25%。在 Pull Zone → Optimizer 启用 Brotli,BunnyCDN 会在边缘节点对 HTML、CSS、JS 实时压缩。需要注意:如果源站已经返回 Brotli 内容,BunnyCDN 会直接转发不再压缩,避免双重消耗 CPU。WordPress 站点想优化压缩链路,可参考 WordPress W3 Total Cache 调优实战 中的浏览器缓存与压缩章节,把本地缓存插件与边缘 CDN 的策略协同起来。更多 WordPress 加速思路可在 WordPress 分类 下查阅。

Range 请求对视频、音频、PDF 下载至关重要。BunnyCDN 默认支持 Range,但前提是源站正确返回 Accept-Ranges: bytes。若源站是 Nginx,确认未启用 gzip_static 对视频类资源的强制压缩,否则会破坏 Range 请求。

六、故障排查清单

高频问题与处理方向:

  • 命中率持续 50% 以下:先在 Pull Zone → Statistics 查看 Cache Hit Rate 趋势,再用浏览器开发者工具看 cdn-cachecdn-cachedat 响应头,若每次都是 MISS,多半是 Edge Rules 错误绕过或源站返回了 cache-control: no-cache
  • 回源 5xx 突增:在 Pull Zone → Logs 启用 Log Forwarding,把日志推到 S3 或 Logtail,按时间窗口聚合分析。常见原因是源站防火墙拦截了 BunnyCDN IP 段,需把官方公布的 IP allowlist。
  • HTTPS 证书报错:自动签发的 Let’s Encrypt 证书每 90 天续签,若续签失败通常是 DNS 解析中途变化。在 Hostname 设置中点击 Force Re-Issue。
  • 国内访问慢:BunnyCDN 国内节点稀疏,可考虑在 Edge Rules 中针对 CN 走跳转,或参考 美国 VPS 部署教程 用 MTR 定位瓶颈跳点。

总结与建议

BunnyCDN 配置 的核心思路是”先把基础 Pull Zone 跑通,再叠加 Shield、Edge Rules 与压缩”,不要一上来就开所有功能导致问题难以定位。建议中小站点先用 Standard Tier 跑两周观察账单与命中率,再决定是否升级 High Volume 或叠加 Permaperma Cache。如果你需要稳定的国内访问体验,可以把 BunnyCDN 当作海外用户的主链路,国内用户交给已备案的国内 CDN,整体成本仍然可控。整体来看,BunnyCDN 适合作为预算敏感型项目的全球分发主力,与现有主机方案的搭配也比较灵活。

发表评论