0%

博客站双机备份切换

B计划还是应该要有的,万一A计划崩了呢。

一大早起来就看到设置的提醒消息发过来:

您好,您的网站宕机啦!!!

大汗,X_X,赶紧测试了一下,还是能上滴,原来是down了一个站,还好还有另一个地址作了备份切换


我是今年上半年开始迁移Blog到Hexo上的,当时只是架在Github上。偶尔出现的问题就是有时候会被墙,访问速度也间歇性的掉到底,不过总体上来说还算稳定。

还有个问题是自从有一次Github被百度来的流量DDos之后,它就屏蔽掉了百度的蜘蛛,以至于完全没法被度娘收录。(百度任何关键词都找不到自己的Blog;翻出去Google一下,整个站都在上面…)

前段时间终于注册了自己的域名,就顺手把Blog同时部署在Github和Gitcafe上了。

我设的默认的访问地址是Gitcafe上的站,然而今早Gitcafe崩了。。。。。。(⊙o⊙)

前言

Gitcafe:网站就在国内,速度快,而且不会被墙,百度的蜘蛛也能正常爬;问题是有时候pages莫名的不更新,稳定性还有待考虑等等

Github的好处是:项目多,因此主要还是得混这个,面向的是全世界,服务相对稳定;缺点就是可能会被墙,访问速度方面要稍微受到影响,然后国内搜索引擎收录不了

两个站都是支持自定义域名的,因此有了域名之后,就可以通过合理地设置CNAME记录来均衡网站的访问情况


然后是域名和域名解析。

我的域名解析用的是dnspod.cn,域名也是顺便在上面买的。

设置CNAME和监控

首先在Github上和Gitcafe上分别建好自己的站,按照各自的要求把访问地址都指向自定义域名,然后需要做的就是通过设置域名的CNAME来正常地引导流量。

在dnspod上可以对同一个地址设置多条不同来源的CNAME,还是相当方便的。

Github在墙外访问比较方便,国外流量的目标地址,而且比较稳定,因此把它作为默认站;国内的流量就都链到Gitcafe上。

(下面这张图是刚刚截的,Gitcafe的监控都飘红了,仍然处在宕机中…)

还有更多的站的话,可以分别把来自电信、移动、教育网等等的流量分别链到更适合的地址上去。


其他的域名解析服务我不太清楚,但是对dnspod来说,设置监控是必要的,要不然当一个地址无法访问之后,没有办法自动迁移到另一个上去。

设置好切换规则之后,如果某个地址宕机,就会按照预先的规则切换到另外一个站上。


关于度娘的抓包问题,我发现前段时间即使按照这个样子设置好了,百度蜘蛛还是不爬我的站。

通过百度站长工具测试链接的访问情况之后都是一切正常的,抓包测试也能够通过,但它就是不抓。(我已经不想再隐藏我对度娘的鄙视之情了)

Hexo部署方面的设置

Hexo的静态系统主要依靠git来把本地生成好的静态页面推送至服务器端,现在有了两个站,如果没有办法解决同时推送的问题,那就太麻烦了。

好在Github和Gitcafe支持的都是标准的Git仓库指令,因此修改一下Hexo下_config.yml中的deploy字段即可:

1
2
3
4
5
6
7
8
# Deployment
## Docs: http://hexo.io/docs/deployment.html
deploy:
type: git
repository:
github: git@github.com:jcf94/jcf94.github.io.git,master
gitcafe: git@gitcafe.com:jcf94/jcf94.git,gitcafe-pages

Github上是推送到master分支,Gitcafe要求推到gitcafe-pages分支

这样每次调用hexo d时就会同时部署到两个仓库里面去

后话

话说相比Github来说,感觉Gitcafe的稳定性真的不敢说,光页面不更新这一点就很让人头疼,偶尔还会感觉当前显示的pages是前几次推上去的版本。

从速度上来看,D监控反馈给我的是Gitcafe平均访问时间在200ms+,Github平均访问时间在300ms+,事实上感觉应该差不了多少,某些线路上反而是Github更快。主要我现在用的主题刷新的时候带了点延迟动画,有时候不同设备/浏览器上js加载速度不同会让页面看上去像是卡了很久的样子。

额,可以考虑只把百度的流量链到Gitcafe上去抓链接。