统一墙内外的访问体验
本文最后更新于:2022年4月8日 凌晨
2022 年 3 月 29 日,我又花了大量时间尝(折)试(腾),目的是寻找一个折衷方案:在不备案并且把主机放在香港的前提下,尽可能地优化大陆用户的访问速率,不再单设移动用户专用的镜像[1]。
先说结果
我换了 DNS (从 Cloudflare 切换到 DNSPod 又换回去),换了图床,换了 CDN(Cloudflare、速云 CDN、Asian Group)重新写了 GitHub Action workflow。最终摸索出了一个我认为不错的结果:
国内镜像:
- URL: https://blog.kukmoon.com;
- 静态页面托管到香港的虚拟主机;
- 图床,图片上传到 GitHub,自动同步到 Coding.net,在博文中使用图片在 Coding.net 的 URL 来插入图片[2];
- CDN,用 速云 CDN;
- DNS 解析,用 Cloudflare。
海外镜像:
- URL: https://blog2.kukmoon.com
- 静态页面托管到 Cloudflare Pages[3];
- 图床,用 GitHub,通过 Cloudflare Workers 反代[4];
- CDN,用 Cloudflare;
- DNS 解析,用 Cloudflare。
我为什么选 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。
参考文献
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!