Posts GitHub & Coding 双线部署 Jekyll 博客
Post
Cancel

GitHub & Coding 双线部署 Jekyll 博客

自从 Jekyll 博客放在 GitHub Pages,代码和服务托管都省了。可是国内访问速度一直要死不活的,ping 速一直在 140 ms 上下,运气好碰上流量空闲时段,偶尔会回落到 80 ms 等级,当然,只是偶尔。经过实施了优化源码、静态资源从国外 CDN 拷贝到项目本地的方法去提速,平时打开博客主页,一般肉眼测速,还是要 2s - 3s 附近,加载项延时一直卡在 GitHub 上。难道打开自己的博客都要挂 VPN 提速?这不是我想要的生活啊,于是上万能的 Internet 寻求解决方案。

不出片刻,发现了一条光明大道:Coding Pages,另外还有个意外收获 DNSPod。简单介绍一下这两个平台:国内曾经有一家公司叫 GitCafe,提供代类似 GitHub 的源码托管服务,几年前给 Coding 收购了,现在 Coding Pages 对应的就是 GitHub Pages。DNSPod 则是国内的免费 DNS 解析平台。

为何选择这对组合?因为 Coding 平台服务器在国内,访问速度自然是极速的。再者,增加一份项目副本,减少了数据丢失的风险。但仅仅选择迁移到国内,就等于放弃了 GitHub Pages 那边的出口。DNSPod 则解决了这个尴尬,通吃国内外线路,根据入口的 IP 智能跳转墙内外。最后最满意的一点就是,它们都 不用备案

简而言之,国内访问博客增速,从两方面下手:

  1. GitHub 上的项目搞个镜像到国内 Coding Pages。
  2. DNSPod 对国内外线路访问的作动态域名解析。

前提

  1. 拥有一个国外购买的独立域名,本人的是 GoDaddy 产品。
  2. GitHub Pages 已经运行了一个完整的静态网站,并绑定到个人独立域名。

过程

国内镜像

首先,拥有一个 Coding.net 注册的账号,等级必须在银级以上。在其上面创建一个个人项目,可选为私有属性,名字为 {username}.coding.meusername部分是 Coding 账号的用户名。

其次,为本地的仓库添加一个指向 Coding 的远程地址,把项目推到 master 分支。

最后,配置 Coding Pages 服务。在 Coding 项目控制台,代码Pages服务中完成。

动态解析域名

1.还是 Coding 项目控制台,代码Pages服务自定义域名绑定目标域名,如本站设定为三级域名blog.cotes.in

2.GoDaddy 控制台为个人域名设置域名服务器为 DNSPod 的免费套餐地址:

1
2
f1g1ns1.dnspod.net
f1g1ns2.dnspod.net

3.注册获得一个 DNSPod 账号,在记录管理添加 GoDaddy 的域名,根据需要配置 CNAME 及其他 A 类地址。

因为 DNSPod 可以识别国内访问外线路,所以可使用两个 CNAME 记录,分别指国内外两个博客的域名,动态指向 GitHub Pages 和 Coding Pages 项目的子域:

此外还建议在域名设置功能设置开启搜索引擎推送CNAME加速

检验成果

江湖规矩,有事没事 ping 一下,国内访问blog.cotes.in

18031501

直接解析到 Coding Pages,30 ms 级别的速度,立竿见影啊有木有。

再看看国外访问:

18031502

和预期一样,跳转到 GitHub Pages 的子域名了,速度飞快!

后话

至此,故事结束了吗?不存在的。完成上述工作后,兴冲冲地清空手机浏览器缓存刷博客。第一眼看屏幕?马上黑人问号,这是什么???

第一反应:是不是输错 URL 了?于是再访问一次,页面马上是正常的博客首页了。再来几次,好像没问题,都是飞速进入到博客首页。

但是隐约中还是感到事有蹊跷,于是再清一下缓存和历史数据,在 100% 保证 URL 正确下,再访问一次,果不其然,Coding 的 404 页面又出来了!

火速追根溯源,在 Coding 项目Pages服务底部,官方一段隐晦的声明中找到了问题:

OK,拿人手短,吃人嘴软,怒加之。一天后,项目控制台收到了审核通知,强制跳转页去掉了。

参考资料

OLDER POST NEWER POST

Comments powered by Disqus.

Search Results