AI 摘要 基于文章说明生成

从图床到 Astro 博客,完整记录 EdgeOne 的域名接入、回源设置、缓存规则、验证方法和常见故障处理。

3,958 字 13 分钟

腾讯云 EdgeOne 加速图床与博客全记录

2026年9月20日 2026年9月22日 网站部署
腾讯云 EdgeOne 加速图床与 Astro 博客配置示意图

这篇文章记录如何以香港轻量服务器为源站,通过腾讯云 EdgeOne 免费版同时加速图床和 Astro 博客。重点不在“打开 CDN”这一个开关,而在于如何划清静态资源、HTML 与 API 的缓存边界。

一、背景与架构

整个方案让 EdgeOne 位于访客与香港源站之间。浏览器优先从边缘节点取得可以长期复用的静态资源;HTML、RSS 和 API 则保持实时回源,避免发布新内容后仍看到旧页面。

项目说明
服务器腾讯云香港轻量应用服务器,2 核 4G、6M 带宽;本文以 203.0.113.10 代替真实 IP
图床域名images.example.com,后端为 CloudFlare-ImgBed / Zipline 与对象存储
博客域名blog.demius.tech,Astro 静态构建、自研主题
DNS腾讯云 DNSPod
加速服务EdgeOne 免费版,加速区域为“全球(不含中国大陆)”

最终访问链路

访客浏览器请求页面与静态资源
EdgeOne 边缘节点命中缓存或决定回源
香港源站1Panel / Nginx 提供内容
静态资源走边缘缓存,HTML、RSS 和 API 保持实时回源。

这种结构的核心收益是把域名和源站解耦。以后更换服务器,只需要修改 EdgeOne 的源站地址,不必批量改文章中的资源链接。

二、图床配置流程

2.1 添加站点与域名验证

  1. 在 EdgeOne 控制台选择“添加站点”,输入图床域名所属的根域名(示例为 example.com)。
  2. 加速区域选择“全球(不含中国大陆)”,接入模式选择 CNAME 接入。
  3. 按控制台提示,在 DNSPod 添加 TXT 记录完成域名归属验证。

2.2 添加图床加速域名

配置项
加速域名images.example.com
源站地址203.0.113.10(脱敏示例)
回源协议HTTPS
回源端口443
回源 HOST 头使用加速域名,即 images.example.com

2.3 DNS 解析与证书

  1. 删除 DNSPod 中原有的同名 A 记录。
  2. 添加 CNAME 记录,指向 EdgeOne 提供的接入地址。
  3. 在 EdgeOne 中为 images.example.com 申请并启用免费 SSL 证书。
  4. 等待解析生效,再分别测试 HTTP 跳转和 HTTPS 访问。

2.4 图床缓存规则

Img-Cache-30d图床静态资源

匹配条件

  • HOST等于images.example.com
  • 文件后缀属于jpg,png,webp,gif,ico,mp4

执行操作

  • 节点缓存 TTL=30 天(强制缓存)
  • 浏览器缓存 TTL=30 天

三、博客配置流程(Astro)

博客的域名接入、源站协议和证书配置与图床相同,但缓存规则不能照搬。Astro 静态构建会给打包资源生成带内容哈希的文件名,这是可以放心长期缓存的关键。

3.1 Astro 静态资源的特点

资源类型构建后的典型文件名路径
CSSBaseLayout.a3f2b1c9.css/_astro/
JavaScripthoisted.d8e7f6a5.js/_astro/
字体Inter.4b2c1d0e.woff2/_astro/
Astro Imagecover.b9a8c7d6.webp/_astro/
HTML 页面index.html,文件名不带内容哈希/ 或内容目录

3.2 Astro 构建资源规则

Blog-Astro-Cache哈希资源

匹配条件

  • HOST等于blog.demius.tech
  • URL path正则匹配.*/_astro/.*

执行操作

  • 节点缓存 TTL=365 天(强制缓存)
  • 浏览器缓存 TTL=365 天

EdgeOne 的路径条件只有“等于、不等于、正则匹配、正则不匹配”等运算符时,可以使用 .*/_astro/.* 匹配路径中包含 /_astro/ 的请求。

3.3 非哈希静态资源兜底规则

Blog-Static-Fallback公共静态文件

匹配条件

  • HOST等于blog.demius.tech
  • 文件后缀属于ico,svg,png,jpg,jpeg,gif,webp,woff,woff2,ttf,otf
  • URL path正则不匹配.*/_astro/.*

执行操作

  • 节点缓存 TTL=7 天(强制缓存)
  • 浏览器缓存 TTL=7 天

3.4 HTML、RSS 与 API 不做强制缓存

首页 /、文章 /posts/xxx/、RSS 和 API 不应命中上述规则,让它们按源站响应或 EdgeOne 默认策略实时回源。这样部署完成后,访客访问相同 URL 也能立即取得新版 HTML。

这里需要区分两个阶段:Git 推送之后仍要等待服务器拉取、安装依赖、构建和发布;发布完成后,HTML 才应该实时可见。CDN 不缓存 HTML,并不能消除构建部署耗时。

四、完整规则体系

规则名称匹配范围缓存 TTL
Img-Cache-30dimages.example.com + 指定媒体后缀30 天
Blog-Astro-Cacheblog.demius.tech + .*/_astro/.*365 天
Blog-Static-Fallback博客静态后缀,并排除 /_astro/7 天
默认策略HTML、RSS、API 等动态或实时内容不强制缓存

五、验证与测试

5.1 验证图床缓存

  1. 打开自己的图床域名(示例:https://images.example.com),确认首页和资源 URL 均可正常访问。
  2. 上传一张测试图片,并在浏览器开发者工具的 Network 面板找到该请求。
  3. 首次请求可能看到 EO-Cache-Status: MISS,再次请求应逐渐变为 HIT
  4. 检查图片响应是否具有预期的 Cache-Control

也可以直接使用命令行检查响应头:

curl -I "https://images.example.com/你的测试图片.webp"

5.2 验证博客构建资源

在页面源码或 Network 面板中找到一个 /_astro/ 资源,再检查两次响应:

curl -I "https://blog.demius.tech/_astro/实际构建文件.css"

预期现象:

  • 第一次可能是 EO-Cache-Status: MISS,之后变为 HIT
  • Cache-Control 的最大有效期符合一年缓存设置;
  • 发布新版本后,HTML 引用一个新的哈希 URL,不依赖清除旧资源缓存。

5.3 验证 HTML 实时更新

curl -I "https://blog.demius.tech/posts/某篇文章/"

HTML 不应该被长期强制缓存。若响应持续返回较大的 AgeEO-Cache-Status: HIT,需要检查是否存在覆盖全站的缓存规则。

六、踩坑记录与解决方案

全站强制缓存后,后台看不到新文件或删除无效

现象

图床上传成功后文件列表不更新,删除文件后刷新又重新出现。

原因

只按图床域名配置了 30 天强制缓存,动态 API 响应也被边缘节点缓存。

解决方案

  • 给规则增加文件后缀条件,只缓存图片和明确需要缓存的媒体。
  • 清除此前错误规则产生的 EdgeOne 缓存。
  • 使用无痕窗口或 curl 重新验证 API 与静态资源响应。

CNAME 与 A 记录冲突

现象

添加 EdgeOne 后 DNS 解析迟迟不生效,访问结果不稳定。

原因

DNSPod 中同一个主机记录同时存在 A 和 CNAME,解析关系互相冲突。

解决方案

  • 删除同名 A 记录,只保留 EdgeOne 要求的 CNAME。
  • 等待 DNS TTL 到期后重新查询解析结果。

HTTPS 回源失败

现象

回源协议选择 HTTPS 后站点无法打开,连接长时间没有响应。

原因

源站证书、TLS 协议、SNI、端口或 HTTP/2 配置与回源请求不兼容。

解决方案

  • 确认源站 443 端口可用,证书有效且覆盖回源 HOST。
  • 核对回源 HOST 是否为实际站点域名,而不是脱敏示例 IP。
  • 可临时切换 HTTP / 80 定位问题,但生产环境优先修复 HTTPS 回源。

路径条件没有“包含”运算符

现象

需要匹配 /_astro/ 下的全部文件,但控制台没有“包含”选项。

原因

当前规则运算符只提供等于、不等于和正则匹配等模式。

解决方案

  • 选择 URL path 的正则匹配。
  • 使用 .*/_astro/.* 匹配路径中包含 /_astro/ 的请求。
  • 保存后用实际构建资源 URL 验证规则是否命中。

规则重叠导致 /_astro/ 图片缓存时间缩短

现象

一年缓存规则和七天静态文件规则同时存在,但 /_astro/ 图片最终只有七天 TTL。

原因

同一请求命中多条规则,靠后的兜底规则覆盖了前面更精确的设置。

解决方案

  • 在静态文件兜底规则中增加 URL path 正则不匹配 .*/_astro/.*。
  • 让哈希资源规则与公共静态文件规则成为互斥集合。

上传成功但文件列表暂时不同步

现象

文件 URL 已经可以访问,图床后台列表却没有马上出现该文件。

原因

如果图床使用最终一致的 KV 存储索引,列表更新可能存在延迟或单次写入失败。

解决方案

  • 使用图床提供的重建索引功能。
  • 检查上传日志和索引写入结果,而不是反复刷新缓存。
  • 对强一致性要求较高时,考虑使用关系型数据库保存文件索引。

大体积视频作为首页背景导致加载缓慢

现象

数十 MB 的背景视频首屏加载时间很长,在弱网下可能无法完整播放。

原因

大文件首屏下载成本高,免费套餐的节点能力、回源带宽和访客网络都会放大等待时间。

解决方案

  • 首页优先使用经过压缩的 WebP 或 AVIF 静态图。
  • 必须使用视频时,准备海报图并延迟加载视频资源。
  • 较长视频交给专业视频平台分发,并以嵌入方式展示。

图床管理后台操作缓慢

现象

后台页面打开慢,上传、列表查询和删除操作存在明显等待。

原因

管理请求需要实时回源,性能受源站带宽、节点路线和接口实现共同影响。

解决方案

  • 不要缓存后台 HTML 和 API,先保证数据一致。
  • 通过 PicGo 等本地客户端配合 API Token 上传,减少后台页面依赖。
  • 持续观察源站响应时间,再决定是否调整线路或迁移服务。

七、更换服务器与更新主题

7.1 更换源站服务器

因为公开 URL 与源站 IP 已经解耦,迁移时不需要修改文章中的图床和博客链接:

步骤操作
1将网站文件、数据库与必要配置迁移到新服务器
2在新服务器完成 1Panel、Nginx、域名和 SSL 配置
3先绕过 CDN 验证新源站内容与 HTTPS 是否正常
4在 EdgeOne 中将源站地址切换为新服务器 IP
5清理需要立即失效的节点缓存并验证线上访问

7.2 更新 Astro 主题

Astro 构建资源带有内容哈希,常规主题更新不需要清理 /_astro/ 的旧缓存:

  1. 修改主题或文章内容。
  2. 执行 pnpm build 生成静态站点。
  3. 将新构建产物发布到源站。
  4. 新 HTML 引用新的哈希资源 URL,EdgeOne 首次拉取后即可缓存。

八、总结与建议

核心原则

  • EdgeOne 只长期缓存明确的静态资源,不对 HTML、后台和 API 做全站强制缓存。
  • 使用 CNAME 接入时,删除同名冲突 A 记录。
  • HTTPS / 443 回源优先,并确保回源 HOST 能匹配源站虚拟主机。
  • 按文件后缀或路径正则精细划分缓存范围。
  • 多条规则共存时,通过排除条件避免交集和顺序覆盖。
  • 发布前主动检查并脱敏源站与管理信息。

Astro 博客的优势

  • 构建资源自动添加内容哈希,适合一年不可变缓存。
  • 新版本引用新 URL,不必为了 CSS 和 JavaScript 更新而全站清缓存。
  • HTML 保持实时回源,部署完成后新文章可以立即被访问。
  • 配合 /_astro/ 精确规则和公共静态文件兜底规则,既快又容易维护。

安全与成本控制

  • 对图床配置 Referer 防盗链时保留必要的空 Referer 或可信来源策略,避免误伤正常访问。
  • 设置用量告警和套餐封顶策略,及时发现异常流量。
  • 速率限制先观察再拦截,避免搜索引擎或正常访客被错误限制。
  • 源站防火墙尽量只开放必要端口;是否限制为 EdgeOne 回源 IP,应以官方当前 IP 段和运维能力为前提。
SUPPORT & SHARE

支持与分享

觉得这篇文章有点用,就把它递给下一位读者。

打赏
腾讯云 EdgeOne 加速图床与博客全记录https://blog.demius.tech/posts/tencent-edgeone-image-hosting-blog-guide/
作者
Demius
发布于
2026年9月20日
许可协议
CC BY-NC-SA 4.0
SMART PICKS
按分类与标签整理
01我只是想换个头像,怎么最后折腾出了一套 npm 图床?网站部署 · 9月14日02Artalk自托管评论系统的搭建和使用网站部署 · 10月6日03无限容量的开源免费图床部署方案自由呐 · 3月16日04Hello World自由 · 10月6日05图床Demius主题 · 8月6日
SERENDIPITY

随便看看

每次来都重新洗牌
01收藏夹终于不用放养了:我做了个 Demius导航扩展开发 · 9月16日02新建了一个论坛方便交流讨论论坛 · 9月5日03粉丝专属福利|¥3/月拿下 CN2 GIA 线路云服务器福利 · 7月30日04薅到了!一个不关机、不限时的免费2核4G云服务器,一个账号领2台未分类 · 7月14日05Demigod主题,一款沉浸式视觉体验Astro主题未分类 · 7月14日
SHARE POST

把这篇文章带走

打开后生成分享海报

评论区

分享你的想法,与大家交流讨论。

评论区将在接近时加载

滚轮或双击缩放 · 拖动查看细节 · 方向键切换 · 下拉关闭