引言:加入 L 站以来,小白也算是慢慢折腾,了解机场 VPS 等一系列网络基础设施概念后,尝试自己当一回赛博工人,借鉴大伙的智慧,手把手从里到外开始建站,装点一下属于自己的博客。再就是自己在 L 站也水了太多,没有自己的产出,督促自己写一篇文档,记录自己折腾的日子。整篇文档仅供参考,望大家轻喷。
参考资料:
1.[教程] Cloudflare 单域名 SaaS 优选教程。让 Cloudflare 不再成为中国减速器,最低延迟低至 10ms!
2. 菜鸟教程零基础 Cloudflare 优选教程
3.0 成本 10 分钟用 Cloudflare + GitHub + Astro 搭建一个全球秒开、永久免费的顶级个人博客
技术栈简要
- 博客托管:Netlify(稳定、免费、支持 Astro SSR)
- 优选传输:Cloudflare SaaS(免费证书、自定义主机名)
- 智能分流:DNSPod(国内优选,海外直连)
当然整个搭建过程也不是一帆风顺的,在我看来并不是按照大佬们的操作指示,一步一步来就会成功,这其中涉及到许多概念的理解,感谢新时代的 AI 技术为我答疑解惑。接着来分别阐述一下为什么选这些技术栈,具体技术就不做介绍了,这里着重说明为什么选 A 而不选 B 此类的问题。
整体流程
[ 用户浏览器]
|
| 1. DNS查询: "主站在哪?"
v[ DNSPod 智能解析 ] | |
| (国内用户) | (境外用户)
| 2a. 返回【优选IP】 | 2b. 返回【官方Anycast IP】
| (来自 saas.sin.fan) | (来自 cloudflare 回源域名)
v v[ Cloudflare 边缘节点 ] <================================+ |
| 3. 携带请求头: Host: 主站
| 识别 SaaS 证书, 建立加密连接 (TLS)
|
| 4. 触发 Fallback Origin (回源后备)
| 通过内部骨干网转发至: 回源域名
v[ Netlify 目标服务器 ]
|
| 5. 匹配 Domain Alias (域名别名)
| 确认 Host: 主站域名是“自己人”
|
| 6. 读取 Astro 构建的静态文件 (dist)
| 返回数据 (且不触发 301 重定向)
v[ 用户浏览器 (成功渲染) ]
用简单的词汇描述一下整个过程,总的来说需要四个域名,其中两个是我们自己准备并托管的(A 和 B),另外两个分别是第三方服务分配或者维护的(C 和 D),我们只需要拿来用即可:
- 主域名 A(店面招牌):相当于你经营了一家店,大家记住了你的店名,全世界的人都根据这个店名来访问,只提供了一条引路的作用,在资源访问等涉及效率方面没有优化
- 回源域名 B(内部通道):托管在 Cloudflare 上(后文简称 CF ),因为 CF 在世界范围内有大量机房(距报告说的是每天 20% 的流量都会从它家走,还是很恐怖的),加上 Anycast 技术可以让你接入延迟最低的 CF 网络。由于主域名 A 不在 CF 托管,CF 默认不让进门,于是需要一个 “内部员工” B 来为 A 担保,相当于访问 A 也可以走 CF 专线了
- 优选域名 C(专业导航):由三方大佬维护,既不存博客内容,也不管店名,作用是每天都去看哪条路接入 CF 是最快的,然后把这些最快的路告诉你们,实现绕过公网堵塞,实现秒开
- pages 域名 D(内容仓库):在各种平台站托管时会给你分配一个 pages 域名,这是真正存放博客网站源文件的地方,只负责把网页内容通过回源域名 B 输出去
总结:数据怎么跑的?
- 用户看你的招牌(A)
- 招牌(A)根据导航(C)的建议,把用户引向最快的 CF 大门
- 大门(CF)看到是自己人(B)担保的请求,立即放行
- 大门内部通过专线去仓库(D)获取网页内容
- 原路返回用户
博客托管
这里解决的是博客存储在哪的问题,刚开始时我以为博客文件都要存在 VPS 服务器上,然后请求的数据流是 [主机 → VPS],后来我才发现静态博客大多采取第三方托管的方式,这里比较有名的托管服务有 Cloudflare Pages, Netlify, Vercel, GitHub Pages 等等。
首先尝试了 Cloudflare Pages,但 Cloudflare Pages 的问题在于,不托管在 Cloudflare 上的域名无法添加到 Pages 主页的自定义域名,具体情况如下图所示。
Cloudflare Pages 行不通,就去看看别人家。由于我搭建博客的时候阅读了 Astro 的官方文档,其中建议我在 Netlify 进行托管,后续的操作中我也就这么做了,整体没有遇到 Cloudflare 那样不认域名的问题,在此不赘述有关 Netlify 具体如何托管博客站,文档非常明白。
图:Astro 官方推荐的托管方式
图:在 Netlify 托管可以手动添加三方域名
优选传输
为什么采取两个域名分开托管的方式?
这是由 CF 自己的托管逻辑决定的,一旦你开启了小黄云托管,CF 会自动接管域名流量,分配一组 Anycast IP,但在 CF 内部,用户是无法修改这一部分的 IP 的,也就是说无法根据外部线路实现动态优化,在大陆内的访问无法得到保障。
在这样的情况下,引入 CF 的 SaaS (Custom Hostnames)服务,即使我们的主域名不在 CF 托管,只要有一个回源域名在担保,也可以给主域名访问提供加速和 SSL 证书。
主域名在 CF 外,我们可以自己定义 DNS 怎么解析,分线路优化。回源域名在 CF 内,保留了海外访问加速通道。
具体到我的情况,我的主域名是在阿里云购买的,然后在 DNSHE 免费申请了一个.de5.net 的域名当回源,藏在后面的域名,不用太好看,能用就行。
图:DNSHE 免费域名
下列为托管的具体步骤,参考了 MIYUSAMA 的贴菜鸟教程零基础 Cloudflare 优选教程,自认为非常详细了,几乎一模一样,有不懂的可以问问 Gemini 等 AI,然后实在不知道的,我有空看到了也会回复大家。
智能分流
一开始我的主域名托管在阿里云上的,毕竟就是从阿里买的,平台的技术力也毋庸置疑,但是用着用着发现,阿里云 DNS 解析没办法指定海外线路,这一点在分流的时候影响还挺大的。相比而言,同样免费套餐的腾讯 DNSPod 默认有海外线路解析。
图:阿里云免费版不支持选取境外解析线路
图:DNSPod 解析列表有境外解析选项
DNS 托管迁移很简单,以我从阿里云托管到腾讯为例,首先找到腾讯的 NX 服务器,一般来说是一对,然后填入阿里云的 NX 服务器配置就行了,这一步的作用是,腾讯告诉阿里,我拿到了这个域名的解析权,后面你就不用管了。
优选结果
图:优选前,DNS 解析权托管在 CF 上
优选后,DNS 解析托管在 DNSPod 上,加速线路分别交给 CF 和 saas.sin.fan (看起来好像没什么变化)
失败的尝试
cloudflare 优选域名加速个人博客求助
L 站很多帖子是对子域名进行优化,技术路线是:CF 回源域名 + CF Pages + 主域名阿里云解析,这一套方法在我尝试下来行不通,原因和前文提到的一样,无法将托管在其他平台上的主域名,加入到 Pages 的自定义域名列表中。
Gemini 给出过解决方案,重写 rules 或者 用 workers,主要思路是改 Host 头为主域名,但实际没有成功过,只能访问回源域名,然后主域名解析不到内容,我猜测原因是在同一个 CF 账号下,Pages 的自动路由策略会干扰 SaaS 的手动回源策略,导致回源域名根本拉不动 Pages 的内容。
图:Gemini 的胡说八道
结束语
技术在于折腾,看起来好像没啥提速效果,但是从整个网络数据流走向,以及架构方面,我有了很多新的收获,也感谢 L 站的各位积极分享!
📌 转载信息
转载时间:
2026/1/14 17:59:59