将博客从GitHub迁移到GitCafe

  • Post author:
  • Post category:IT
  • Post comments:0评论

我之前一直使用Github Pages功能以及Octopress来搭建个人博客,我也写了一篇文章《象写程序一样写博客:搭建基于github的博客》来分享博客搭建的技术细节。

但是自从我的博客每天访问量超过2000次以后,我就发现博客的访问速度还是一个不可忽视的问题。通过监控宝Google Analytics,我发现有些博客文章的平均打开时间长达4秒钟。于是我开始考虑将博客搭建在更快的服务器上面。

我的首先考虑是购买独立的VPS,Linode每月30$的价格还是略贵,于是我买的是DigitalOceanDigitalOcean算下来每月只需要5$。于是在一个周末,我花时间购买了DigitalOcean家的VPS,安装了Nginx,然后在上面运行了一个脚本,定时将我github博客的内容自动更新过来(其实就是定期git pull一下我博客的repo)。

就这样运行了一个月,我发现虽然DigitalOcean服务器的ping值相比github要快一些。但是从监控数据上看,整体的网页访问速度并没有什么提高。就在我在微博上抱怨的时候,一个朋友推荐我试试GitCafe。于是我就尝试了一下,结果你猜怎么着?我被吓坏了。

ping值直接从200ms左右减少到3ms左右,如下图所示:

监控宝的统计显示,首页平均打开时间从原来的1800ms减少到350ms左右,快了5倍,如下图所示:

所以我强烈建议各位基于Github Pages功能来搭建个人博客的朋友,将博客内容镜像到GitCafe上。如果你有个人的独立域名,那么镜像之后就可以随时将博客地址在Github和Gitcafe之间切换了。对于各位博主来说,这样做没有任何风险,因为你可以随时再切换回去。当然,免费用了人家的服务,如果你能像我这样,在网站的底部附上感谢内容,那是再好不过的了。

以下为大家介绍详细的迁移过程。

迁移教程

注册

如果你还没有注册过GitCafe,首先需要点这里注册一下。

注册完成之后,去公钥管理那儿添加一下你的ssh公钥,这样以后提交代码会方便很多。当然你也可以不设置这一步,每次提交通过密码来验证。

在GitCafe上新建一个博客项目

然后我们需要先在GitCafe上新建一个博客项目。GitCafe的博客搭建官方教程藏得比较深,所以我第一次还没有找到,教程地址在这里。具体来说,就是创建一个与用户名(如果是组织,就是组织名)相同名称的项目。如果你创建的项目名与用户名相同,GitCafe会自动识别成这是一个Page项目,如下所示:

设置多个Git Remote源

接下来我们需要将原本提交到Github上的博客内容同步提交到GitCafe。因为我的博客是基于Octopress的,我介绍一下Octopress的做法,其它博客引擎的做法类似。

对于Octopress,我们只需要每次提交网站内容时,执行完rake deploy之后,再执行以下脚本即可(你可以将该脚本中的代码仓库地址换成你的,然后将其保存成一个脚 本文件,需要时执行一下即可):

1
2
3
4
5
6
7
cd _deploy
# 添加 gitcafe 源
git remote add gitcafe git@gitcafe.com:tangqiaoboy/tangqiaoboy.git >> /dev/null 2>&1
# 提交博客内容
echo "### Pushing to GitCafe..."
git push -u gitcafe master:gitcafe-pages
echo "### Done"%

大概解释一下以上内容,Octopress在发布时会将自己的_delpoy目录切换到master分支,然后将生成的博客内容放到_delpoy目录中,然后执行git push操作。正常情况下,默认内容是push到github上的。我们执行的以上脚本,就是为该项目增加了一个名为gitcafe的远程仓库,然后将master分支push到gitcafe的gitcafe-pages分支。

修改Rakefile (可选)

除了以上方法外,你也可以直接修改Rakefile。在其第269行后增加如下代码,也可以达到同样的目的,这样你每次就仍然只需要执行rake deploy即可同时将博客同步到github和gitcafe:

1
2
system "git remote add gitcafe git@gitcafe.com:tangqiaoboy/tangqiaoboy.git >> /dev/null 2>&1"
system "git push -u gitcafe master:gitcafe-pages"

插入代码的示例位置如下:

设置域名

GitCafe的自定义域名设置比github要友好得多,它不但提供了图形界面设置,并且支持同时设置多个域名。在项目管理–>域名管理中,我们可以找到相应的设置项,如下所示:

在设置完之后,我们需要去域名解析的服务商那儿,将对应的域名用A记录类型,解析到117.79.146.98即可。

添加对GitCafe的感谢(可选)

如果你也想像我一样,想在博客底部添加对GitCafe的感谢,可以参考这个提交。它通过修改Octopress的source/_includes/custom/footer.html模版文件完成。

感谢

最后再次感谢GitCafe,上个月在QCon大会上了解到他们的发展思路和Github很不一样。虽然它还是一家创业公司,但是我期待看到它最终能够推动国内开源和技术社区的发展。

Posted by唐巧Jun 2nd, 2014summary

原创文章,版权声明:自由转载-非商用-非衍生-保持署名 |Creative Commons BY-NC-ND 3.0

发表回复