以前这个博客是托管在 stdyun 的,后来不知道什么原因(貌似被美团云收购?), octopress 托管服务终止了,原有的网站被转移在外国的服务器上,而且访问速度越来越慢,这不得不让我考虑重新寻找一个免费的 octopress 托管服务。
几经斟酌,觉得选用 GitHub 和 GitCafe ,他们分别是国外的、国内的代码托管服务商,也都提供 Git Pages 服务,我们可以把 octopress 托管在他们那。

GitHub Pages

具体的托管操作在互联网上面大把,这里就不在累赘,大概如下

  • GitHub 上面创建一个与你用户名相同前缀的 Repository ,比如我的 BelinChung/belinchung.github.io
  • cd path/your/octopress/folder
  • 初始化 rake setup_github_pages ,按提示输入你的 Repository URL
  • 编译和发布 rake generate rake deploy

GitCafe Pages

因为两家的产品都差不多,所以操作也是不尽相同,小区别在第一步,不需要 github.io 后缀

  • GitCafe 上面创建一个与你用户名相同前缀的 Repository ,比如我的 BelinChung/belinchung

GitCafe 还提供的中文文档,可以去看看 GitCafe Pages Wiki

域名绑定

  • GitHub 需要在你的 octopress 的 source 目录下创建一个 CNAME 的文件,里面输入你想要绑定的域名,然后将域名 CNAME 到 yourname.github.io 上

  • GitCafe 后台可视化操作,非常方便,然后将域名 A 记录到 117.79.146.98

同时使用

开头我们说了,两家分别是国外和国内的代码托管服务商,GitHub 对于国外的访问(我猜的)比较友好,GitCafe 对于国内的访问比较迅速(必须的呀),能不能同时使用两家的托管服务,如果访问者是国外的 IP,走 GitHub ;反之,如果是国内的 IP ,走 GitCafe ?

答案是肯定是,我们使用 DNSPod 线路解析来实现“负载均衡”。

如何你的域名在 DNSPod 上面有一段时间了,那么你的线路类型里面直接有 国内国外 两个选项,你直接将 Github CNAME 记录的线路类型选择为 国外 , GitCafe A 记录的线路类型选择为 国内 即可!

images

如果你的域名线路类型里没有 国内国外 选项,也不用伤心,我们可以这么做
我们将 Github CNAME 记录的线路类型选择为 默认,将 GitCafe A 记录的线路类型分别选择为 电信联通教育网

images

同时部署

应该两家的服务不属于镜像的关系,所以得分别更新部署,不过在你的 Rakefile 文件下添加这2行代码,即可按照平时一样只执行 rake generate rake deploy 即可

cd "#{deploy_dir}" do
    system "git add -A"
    puts "\n## Commiting: Site updated at #{Time.now.utc}"
    message = "Site updated at #{Time.now.utc}"
    system "git commit -m \"#{message}\""
    puts "\n## Pushing generated #{deploy_dir} website"
    system "git push origin #{deploy_branch}"
    puts "\n## Github Pages deploy complete"
    /*  增加这2行,记得换上你的 git url */
    system "git remote add gitcafe [email protected]:belinchung/belinchung.git >> /dev/null 2>&1"
    system "git push -u gitcafe master:gitcafe-pages"
end