同时使用 GitHub 和 GitCafe 托管 octopress
以前这个博客是托管在 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 记录的线路类型选择为 国内
即可!
如果你的域名线路类型里没有 国内
、国外
选项,也不用伤心,我们可以这么做
我们将 Github CNAME 记录的线路类型选择为 默认
,将 GitCafe A 记录的线路类型分别选择为 电信
、 联通
、 教育网
同时部署
应该两家的服务不属于镜像的关系,所以得分别更新部署,不过在你的 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 git@gitcafe.com:belinchung/belinchung.git >> /dev/null 2>&1"
system "git push -u gitcafe master:gitcafe-pages"
end