建站与镜像
现在大家都比较喜欢使用GitHub/GitCafé Pages建站。一者经济实惠。二者GitHub在国内访问简直慢成渣渣了。所以不少人也倾向于使用国内同类产品GitCafé做一个镜像。基本有国外CDN的GitHub是10ms的ping值,而国内Ping GitHub基本要200ms。大家也可以用如下两个网站实测一下。
如果不知道如何使用GitHub Pages建立博客,不太熟悉git操作,不知道怎么镜像你的博客,或者不知道怎么嵌入完美显示公式的MathJax(码农作笔记,真少不了公式😂),可以参考:
基本步骤也就是:
- 买个人域名。比如用GoDaddy。
- 个人域名分国内国外解析。
- 解决一些资源国内缓慢的问题。
而其间几个关键的问题就是:
- 将同一个域名,如何让国内、国外访问分别解析到GitCafé和GitHub上的Page?
- Mathjax也是放在国外的,加载一样非常慢,可否优化?
- 如果想把站点做成中英文的,评论管理,是否得同时使用“多说”和Disqus?
- 站点统计,万恶的Google被墙后,国内只得使用百度等其他统计?
域名解析
之前其他人都喜欢使用DNSPod,我看了也挺不错的。但是如今DNSPod域名解析已经不能设置“国内”、“国外”,却必须设置“电信”、“联通”、“移动”等了,设置完成发现有10多20条设置实在蛋疼。最后终于找到了阿里DNS,也就是曾经万网的服务。简简单单设置4条记录就可以了。
其中最好还是使用CNAME,这样可以有如GitHub Custom domains 中说的优势:
- 可以使用CDN加速。如果用A记录,实测中GitHub都是访问的美国加州的两IP,而使用CNAME则基本上使用了GitHub在当地国家或附近的CDN。CNAME访问平均也就5ms左右,而使用A记录则平均在100ms左右。
- 就是GitHub服务器IP改了也就不用改域名设置。现在GitCafé貌似没有CDN,现在还是使用CNAME,以后他家有CDN了也就直接加速了。
- 因为防DoS实现得更好,页面可以加载更快(感觉就是CDN的优势吧)。
域名配置成功后,大家可以看一下域名解析情况:
如果解析正常,则基本如后。那么你也可以使用上面的Ping工具看看实际效果。现在开个人站点真有秒开的感觉。
MathJax加速
我实际测了一下,使用最原始的MathJax CDN配置,整个页面首次加载要6s左右,有缓存后加载在3-4s左右完成。我也像博客的镜像如法炮制,在GitCafé上建了一个镜像,做成自己的Project Page,这样也就能使用自己的博客域名访问了。也同样达到了加速的目的。大家也可使用如下脚本使用加速后的MathJax。
大家也可以看此博文BM25预览MathJax效果。
遇到的一个坑,也是GitCafé一个不完善的地方:如果Project名字有大写的话,Project GitCafé Page是访问不了的。
评论及站点统计优化
无疑,要想使用最快且最适合的评论管理插件,国内使用“多说”,国外使用Disqus。同理也需要拆分“百度统计”和Google Analytics。 本博也就对模板稍做修改。让GitCafé 和GitHub 上各有一个_config.yml
。然后让域名解析访问GitCafé 的用户(也就是国内用户),加载“多说”和百度统计;让域名解析访问GitHub的用户使用Disqus和Google Analytics。 当然,对于统计来说,大家也可以把百度和Google一起开。只需要在_config.yml
中加上对应的ID即可。
大家也可可以Fork 本博,获取主题之外,修改_config.yml
中对应注释的disqus_shortname
和google_analytics
完成优化。也可以下载模板 analytics.html 加载到你现有的博客中。
内容页面加载优化
可以参见我另一篇博文 Jekyll 页面加载优化
Original post: http://blog.josephjctang.com/2015-03/github/