通过Hexo+Github的方式将Blog搭建在Github上虽然既省钱又方便,但是有个缺点,就是从国内访问有点慢,如果Github被墙了Blog就无法访问了。本篇文章讲的就是如何将Hexo同时部署在Github,coding(原名Gitcafe)等多个代码托管平台上并开启各自的page服务,再通过DNSPod分流访问的方法。
多repositories部署
1. 安装hexo-deployer-git
npm install hexo-deployer-git –save
2. 在根目录下的配置文件_config.yml
中添加deploy配置
deploy配置是部署的基础,在deploy配置中,用户需填上部署服务器的类型,仓库名称,分支名等信息。一个正确的部署配置中至少要有type
参数。
标准格式:
参数 | 描述 |
---|---|
repo | 库(Repository)地址 |
branch | 分支名称。如果您使用的是 GitHub 或 GitCafe 的话,程序会尝试自动检测 |
message | 自定义提交信息 (默认为 Site updated: {{ now(’YYYY-MM-DD HH:mm:ss’) }}) |
如果同时使用多个deployer,则格式为:
不过以上格式有点臃肿,看了其他博主的配置方法,这种格式比较简洁:
以下是本人的配置:
其中,repositories(仓库)的地址有两种形式:
第一种是https,类似https://github.com/xyzardq/xyzardq.github.io.git
第二种是SSH,类似git@github.com:xyzardq/xyzardq.github.io.git
这两种仓库地址有什么区别呢?https是在部署时直接通过https协议push到对应的repositories,所以在push的时候需要输入仓库所对应的代码托管平台的账号密码。而SSH是在部署时用云端的公匙解锁本地的私匙,如果对应就直接push到对应的repositories,从而不用输入账户密码。本人比较推荐用SSH,毕竟不用输入密码比较方便。
两种repositories地址的使用方法
Github的repositories地址提取位置在当前仓库的菜单栏右侧
Coding的repositories地址提取位置在当前仓库的左下角
https地址的使用
https地址的使用比较简单,直接把对应的https地址填入repo中然后在部署时输入账户密码即可
SSH地址的使用
SSH地址需要配置SSH key,将公匙上传到云端后方可使用
- 配置SSH key
git新建SSHkey并添加到代码托管平台 - 将对应的SSH地址填入repo中即可
3. 部署到云端
Hexo deploy
参数 | 描述 |
---|---|
-g | 部署前先搭建 |
-m “commit” | 添加commit |
DNS分流
现在,我们已经把Blog部署到了两个以上的平台上,那么,怎样才能根据访客不同的线路类型解析到不同的page上呢?这时就需要域名的DNS解析分流了。据我所知,目前DNSPod和cloudxds都支持DNS分流。DNSPod的免费版就支持DNS解析分流,但是缺点是免费版显性转址需要网站正常代理满30天….30天过去黄花菜都凉了,不过CNAME不受此限制。cloudxds的免费版号称DNSPod的收费版,但是缺点是没备案的域名用不了…所以如果是没备案的域名只能使用DNSPod了。下面以DNSpod为例。
注册DNSPod
添加CNAME记录
- 添加要解析的域名
ps:填写的域名不要带www前缀 - 添加CNAME记录
由于我们要进行DNS分流解析,所以一般来说需要添加两条以上的CNAME记录,下面以分为国外和国内两条线路为例:
ps:除了国外和国内,DNSPod还提供电信移动联通等运营商和谷歌百度等搜索引擎的线路提供修改NS记录
什么是NS记录?NS记录(name server)即域名服务器记录,用于指定该域名由哪个 DNS 服务器进行域名解析。注册域名时,总会有默认的 NS 记录。
ps:如果是在DNSPod注册的域名,请跳过此步。
记下DNSPod的域名服务器
DNSPod的域名服务器存储在控制台的DNS记录中,默认为f1g1ns1.dnspod.net
f1g1ns2.dnspod.net修改所用域名注册商的域名服务器
登录所用域名的域名注册商,进入DNS管理,将域名服务器(有的注册商为DNS记录中的NS记录)修改为DNSPod的域名服务器测试DNS解析是否生效
打开Dns检测|Dns查询- 站长工具,输入你的域名,选择CNAME类型,检测。如果国内国外的响应IP分别为你设置的两个记录值,则DNS分流设置成功
参考资料
同时将博客部署在Github和Gitcafe上,并通过DNSPOD分流
使用 DNSPod 解决 GoDaddy 域名解析不稳定的问题