问题描述
Github Page不能被搜索引擎收录
Github Page禁止了百度爬虫,导致百度无法收录我的博客;然后其他搜索引擎可能也是类似原因,均无法收录。而且曾经可以通过手动上传和sitemap的方式提交链接,现在连sitemap都读不到了……被迫转战其他平台:使用自定义域名
Github Page在国内访问速度较慢
github.io经常抽风,在国内访问不稳定,考虑增加一个国内的备份。
初步解决方案
- 利用
coding创建国内镜像 - 搜索引擎收入
coding内容 - 利用可控域名,通过
CNAME解析到不同域名中,通过DNS实现负载均衡
- 为什么是coding
- 因为gitee实在太慢了,性能堪忧;加上coding能白嫖六个月……
所以这期操作的前提是:你有一个自己可控的域名
Github Page
- 直接利用原来的
Github Page即可 - 还没有
Github Page的可以看这里
Coding
- 创建一个项目
Hexo同步部署即可
注册账号
创建项目
和
Github操作几乎一毛一样,创建一个仓库就行
添加SSH公钥
- 添加个人SSH公钥
- 添加项目SSH公钥:代码仓库->仓库设置->部署公钥(同时给该公钥写入权限)

注意:一定要添加项目SSH公钥,即使这俩一毛一样……否则会无法写入仓库。这个设计很奇怪,被迫设置两遍
- 添加之后
ssh -T git@e.coding.net试一下有没有读写权限:

设置托管
持续部署- > 网站托管
这里需要实名认证,不想实名认证的同学可以直接腾讯云登录(x)
网站部署

稍微设置一下,之后部署成功的截图大概长这样:

此时点击访问按钮应该能访问网站,但是是404,因为你啥也没写。
设置自定义域名
我们的设计是让同一个域名指向两个不同的网址,让DNS服务器来判断走哪条路线最合适……所以需要一个自定义的域名——而且它原本的域名太长了,根部记不住(x)。
Coding自定义域名

这里需要在域名供应商那里添加一条解析,以验证你的域名;同时需要为你的域名绑定证书。
Github自定义域名

- 注意:
Github Page在自定义域名的时候会生成一个CNAME文件,为了避免我们每次更新是该文件被覆盖,需要在本地的source目录下同步创建一个CNAME,该文件内容为你刚刚填写的自定义域名。 - 同时配置根目录
_config.yml,防止CNAME被渲染成html文件
1 | skip_render: |

CNAME存于source目录下,记录值为自定义域名blog.xiabee.cn
证书相关
我之前购买xiabee.cn的证书的时候,图便宜搞了个单域名的,现在不支持子域名证书,所以就必须重新配置证书。
本来是准备用OHTTPS搞个免费泛域名的,但是很多浏览器不认他的证书……导致我去腾讯云搞了一个新的证书(划掉)。

想白嫖的同学可以去OHTTPS或者letsencrypt上面看看。
有条件的话尽量选大公司的,很多免费的证书已经不被信任了……
设置Hexo
修改根目录下的_config.yml最后的deploy:
1 | deploy: |
然后hexo g -d,渲染,提交。如果你的SSH公钥设置正确的话,应该是没有很大问题的。

设置域名解析
最后把自定义域名同时解析到两个记录值即可:

国内外访问测试
国内访问指向coding page:

国外访问指向Github Page:

此时我们的分布式站点已经配置好了(✌)