GitPage因为某些原因拒绝了百度爬虫,苦逼了好久,终于找到了绕行火焰山的方法,看到的朋友偷着乐吧。
解决方案
GitHub Pages搭建的网站,在百度搜索引擎访问的时候,经常性的会返回 403 forbidden,从而百度会认为网站访问不稳定,对网站降权,甚至K站。
要想解决这个问题,只有买个VPS自己撘一个jekyll解析博客了。但是我的域名没有备案,单纯用国外的VPS,用户访问起来也会有慢的问题,毕竟Github Pages的CDN还是很牛逼的。因此,只有欺骗百度的蜘蛛,让他到其他的站点抓取页面,该站点和GitPage保持同步。
现在NDS技术是十分发达的,一般大公司内的域名解析是可以按省、运营商等来做的。大家常用的DNSPOD也支持这么牛逼的功能,免费用户可以 按电信、联通、教育网、百度、搜索引擎等分别设置解析,付费用户可以分省、分国家、分大洲等等。
工具
Dockers,DNSPOD,nginx等。
部署Jekyll环境
本Blog采用Docker镜像来管理Jekyll,为了一劳永逸。具体的制作方法可以参考:
http://www.xiexianbin.cn/docker/2015/08/03/Dockerfile-build-jekyll-server/
搭建博客站点
1. 下载Docker镜像
docker pull xiexianbin/centos6:jekyll
2. 启动docker实例
docker run -d -t -i -p 8081:8080 -v /root/docker:/opt/docker --name jekyll xiexianbin/centos6:jekyll
3. 克隆GitPage代码
[root@xianbin ~]# docker attach jekll2
[root@8b3720024cce /]#
[root@8b3720024cce /]# cd /opt/docker/
[root@8b3720024cce docker]# git clone https://github.com/xiexianbin/xiexianbin.github.io.git
Initialized empty Git repository in /opt/docker/xiexianbin.github.io/.git/
remote: Counting objects: 1330, done.
remote: Compressing objects: 100% (35/35), done.
remote: Total 1330 (delta 18), reused 0 (delta 0), pack-reused 1295
Receiving objects: 100% (1330/1330), 2.10 MiB | 61 KiB/s, done.
Resolving deltas: 100% (645/645), done.
[root@8b3720024cce docker]# cd xiexianbin.github.io/
[root@8b3720024cce xiexianbin.github.io]# jekyll serve --port 8080 --host 0.0.0.0 &
[1] 30
[root@8b3720024cce xiexianbin.github.io]# Configuration file: /opt/docker/xiexianbin.github.io/_config.yml
Source: /opt/docker/xiexianbin.github.io
Destination: /opt/docker/xiexianbin.github.io/_site
Generating... done.
Server address: http://0.0.0.0:8080
Server running... press ctrl-c to stop.
4. 定时更新博客代码
采用crontab每小时与gitpage同步一次。
crontab -e
- */1 * * * cd /opt/docker/xiexianbin.github.io; git pull » /tmp/github_blog_pull_record.log 2>&1;
配置智能NDS
登录DNSPOD,进入域名解析的设置页面,添加一条针对百度蜘蛛解析:
然后,就可以到百度站长测试抓取。我的第二天,百度收录成功。
当然,我用nginx的做端口转发哦,解决80端口的复用问题。