问题描述
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
:
此时我们的分布式站点已经配置好了(✌)