如何创建这样的blog(2)--解决爬虫无法爬取git个人博客的问题

gitcafe创建项目

配置域名


如何创建这样一个blog这一篇已经过去快一年了。

然而最近遇到一个新的问题,各大搜索引擎毫无流量。因此写了文章后,除了几个朋友以外也没人看。

我认为我的文章也不是百分百正确的,没大神来评论批评我怎么知道我错哪儿了呢。

解决爬虫的爬取问题

然后我看到知乎这个帖子如何解决百度爬虫无法爬取搭建在Github上的个人博客的问题?

文中的一个解决办法是使用CDN

然后我买了域名weakyon(weak kyon就是弱虚的意思),打算用CDN加速来解决这个问题。

首先尝试了cloudflare,因为帖子里有人用cloudflare解决的。

然而并没有什么用,百度UA有时候能爬到有时候爬不到

爬到时会显示

爬不到时显示

当时我还想着还是有点用,后来回想起来才猜测可能是为了SEO,搜索引擎的UA全部会穿透到源站上。

而github源站使用了CDN,这个varnish缓存应该是github自身CDN的,当CDN命中时能正常爬取,当未命中时就会穿透到github源站上,然后被403

国内的加速乐也是会把爬虫穿透到源站上,导致帖子中那个人用加速乐没什么用。

当然,当时我没想那么多,直接各种换CDN尝试。

国外知名的除了Cloudflare就是Incapsula了,没用。

国内的七牛是迁移用的,又拍云,360网站卫士,百度CDN,以及和dnspod合作的腾讯CDN,如果不想换域名的话,都是要域名备案的。

最后走投无路,在github上的博客用没备案的域名,想让百度能爬到看来是行不通了。

后来想到,把gitcafe作为镜像源不就好了吗。

#gitcafe创建项目

然后就在gitcafe上创建了项目

gitcafe官方帮助文档

添加了ssh后

然后写个Makefile

每次commit后make就行了

另外git是有功能可以同时提交到多个远程主机的,嫌麻烦的可以使用这个功能

我这里是防止gitcafe哪一天挂了,能灵活一些

#配置域名

gitcafe以前是支持在dnspod加入A记录,值是他的IP的,因为被DDOS的关系,现在只支持CNAME的方式

注意的dnspod上要把默认,电信,联通全部加上CNAME记录,我的经验是只用默认的话,有时候会刷不出来

然后在gitcafe的自定义域名加入weakyon.com,就OK了

现在百度爬虫爬起来就没问题了

返回200,连接到gitcafe的服务器上

CDN配置优化

一个原因是Cloudflare的dashboard实在是很棒,不舍得不用。

另外一个原因是用just-ping进行ping测试,除了china以外的地方访问,速度都慢的离谱

所以在Cloudflare上把CNAME设置好,然后把域名服务商的NS改到Cloudflare上

最后在Cloudflare的page rule里,添加weakyon.com/*规则,把cache改为basic cache

过一会儿weakyon.com就会解析到Cloudflare的域名了

用just-ping再测了下,速度飞起

在国内线路用压测工具稍微压了下,速度也还可以:

后备方案

gitcafe最近用的人很多,从国内的大趋势考虑,可能以后也会不支持CNAME的方式

如果这种情况真的发生了,那么只能自己用VPS搭建一套jekyll环境了

也就相当于自己用VPS去实现现在gitcafe实现的东西,然后用CDN给域名加速

这样VPS的流量和性能应该都不需要太好,够用就行了

当然,还是希望这样的情况不会发生,也祝gitcafe能越办越好0.0