个人版使用 7 个月的真实体验,非广告,仅供参考

1. 为什么给 Halo 加 CDN?

Halo 是基于 SpringBoot 的轻量博客系统,默认所有资源(主题、图片、附件)都由后端直接返回。对国内外访客来说,页面加载往往受限于网络往返和服务器带宽。

EdgeOne 提供:

  • 全球 2800+ 边缘节点,最近节点直接返回内容。

  • 内置 DDoS、CC、Bot 防护,站点安全“一键开启”。

  • 边缘函数(Serverless)可在节点层完成图片 WebP 转换、请求改写等。

  • HTTPS 免费证书自动续期,省去自行部署 Nginx。

实际效果:首页 TTFB 从 1.7 s 降至 0.9 s,图片体积平均缩小 30%。

2. 接入准备

  1. 腾讯云账号已实名认证。

  2. 准备好站点域名(如 blog.example.com),若站点在中国大陆必须完成工信部备案。

  3. 登录 EdgeOne 控制台 → “站点管理” → “新增站点”。

推荐使用 DNSPod 托管接入,只需在腾讯云 DNSPod 添加一条 CNAME 记录即可完成,无需改动原有 NS。

3. 套餐与加速区域选择

个人站点流量 <10 GB/月,推荐 个人版免费套餐(含 10 GB 加速流量、基础 DDoS/CC 防护)。

加速区域:

  • 中国大陆可用区 → 需要备案,节点仅在国内。

  • 全球可用区(含中国) → 备案后可使用全球节点。

  • 全球可用区(不含中国) → 无备案要求,适合纯海外访客。

我使用的是「全球可用区(含中国)」,兼顾国内外访问。

4. Halo 专属缓存规则

Halo 的静态资源主要分布在以下路径:

  • /themes/*/assets/** – 主题 CSS/JS/图片

  • /uploads/** – 文章图片、附件

  • /api/** – 动态 JSON 接口(不缓存)

进入站点加速:

点击规则引擎:

然后点击网站加速:

进入后点击右上角的编辑:

所有的设置请依据下方图片编辑就行:

5. 边缘函数实现自动 WebP 转换

图片压缩是提升访问速度的关键。EdgeOne 支持在节点层对图片进行格式转换。

步骤:

找到菜单下 '边缘函数->函数管理' 来实现自动转webp 如果失败会自动回源

选择图片处理 ,然后将下面函数代码填入即可:

async function handleEvent(event) {
  const { request } = event;
  const accept = request.headers.get('Accept');
  const option = { eo: { image: {} } };
  // 客户端支持 WebP 则转换,否则返回原图
  if (accept && accept.includes('image/webp')) {
    option.eo.image.format = 'webp';
  }
  const response = await fetch(request, option);
  return response;
}
addEventListener('fetch', event => {
  // 若函数异常,直接回源
  event.passThroughOnException();
  event.respondWith(handleEvent(event));
});

创建触发规则:

  • HOST:blog.example.com

  • URL Path:/uploads/*(匹配所有上传的图片)

这样,访问 https://blog.example.com/uploads/2025/09/hero.jpg 时,若浏览器 Accept 包含 image/webp,EdgeOne 会在节点直接返回 WebP,省去回源。

如果网站SVG比较多建议配置Svg回源在回到规则引擎

创建新增SVG引擎

6. HTTPS 与证书自动续期

在「站点概览」→「HTTPS」打开「免费证书」开关,EdgeOne 会自动为域名申请 Let’s Encrypt 证书并每 90 天自动续期。无需自行配置 Nginx。

如果已有自有证书,也可以在「自定义证书」处上传,EdgeOne 会在边缘节点统一使用。

7. 其他实用设置

  • 自定义 Cache Key:在「规则引擎」→「自定义 Cache Key」中加入 HostQueryString,防止不同子域或查询参数导致误缓存。

  • 离线缓存:开启「离线缓存」后,即使源站异常,EdgeOne 仍会返回已过期但可用的缓存,提升容灾能力。

  • 预热缓存:在「站点概览」→「缓存预热」填写首页 URL,系统会主动请求并缓存到节点,首访用户即可命中。

8. 实测数据(7 个月)

指标

接入前

接入后

首页 TTFB

1.7 s

0.95 s

图片体积(平均)

1.2 MB

0.84 MB(WebP)

缓存命中率

≈45 %

≈78 %

安全拦截次数

0

累计 2 万+(CC/DDoS)

月费用

≈¥120(自建 CDN)

免费套餐内 ¥0

数据来源:EdgeOne 控制台「流量分析」+ 本地 Chrome DevTools。

9. 常见问题速答

  • Q:是否需要在原服务器上再装 CDN 插件? A:不需要,所有加速与防护均在 EdgeOne 边缘完成,原站保持原有配置即可。

  • Q:如果主题更新,缓存会不会导致旧文件? A:在主题发布后手动点击「清除缓存」或使用「缓存预热」重新拉取最新文件。

  • Q:EdgeOne 是否支持 HTTP/3(QUIC)? A:默认已开启,浏览器支持时会自动使用。

  • Q:如何查看防护日志? A:控制台 → 「安全分析」可查看 DDoS、CC、Bot 的拦截次数与来源 IP。

10. 小结 & 推荐

对 Halo 这类轻量博客而言,EdgeOne 的「一站式」方案极大降低了运维成本:

  • 零成本的个人套餐足以支撑日均几千访问。

  • 边缘函数让图片自动 WebP,无需改动后端代码。

  • 全局防护免去自行部署 WAF 的繁琐。

如果你也在寻找低成本、易上手的 CDN+安全方案,强烈推荐先使用个人版免费套餐进行试跑,确认效果后再考虑升级。