统一墙内外的访问体验

本文最后更新于:2022年4月8日 凌晨

2022 年 3 月 29 日,我又花了大量时间尝(折)试(腾),目的是寻找一个折衷方案:在不备案并且把主机放在香港的前提下,尽可能地优化大陆用户的访问速率,不再单设移动用户专用的镜像[1]

先说结果

我换了 DNS (从 Cloudflare 切换到 DNSPod 又换回去),换了图床,换了 CDN(Cloudflare、速云 CDN、Asian Group)重新写了 GitHub Action workflow。最终摸索出了一个我认为不错的结果:

国内镜像

海外镜像

我为什么选 CF 弃 DNSPod?

Cloudflare 真的是世界上最良心的免费 CDN 了。不比不知道,一比吓一跳。它有免费 CDN、免费 DNS、自动配置泛域名的免费 SSL 证书、免费静态页面托管、免费防 DDOS。与 CF 相比,DNSPod 的免费版只有两个优点:在墙内解析快、智能解析(按线路提供不同的解析结果)。

我放弃 DNSPod 还有一个原因就是 DNS 智能解析(为了墙内墙外双线部署)和 CDN 不能兼得,我不知道问题出在哪里。

用 GitHub Actions 双线部署

海外镜像:部署到 GitHub Pages(Kukmoon/kukmoon.github.io.git 仓库),Cloudflare Pages 和 Netlify 会监测仓库的变化,并且进行持续部署。

国内镜像:部署到虚拟主机。在执行 hexo d -g 之前,要用 sed 命令替换掉图片的 URL,把图片的路径从 Cloudflare Workers 改成 Coding.net。

参考文献