腾讯云COS+CDN+Github双服务器托管hexo

把博客分别托管在腾讯云对象储存 和 Github Pages上,再通过DNS解析进行访问优化。
由于github是国外的服务器,终归会对国内的用户访问造成一定的影响。于是打算再在国内服务器上部署一套,配合上国内的CDN加速,再利用DNS解析让国外用户和国内用户选择最优路线,从而提升访问速度。

此文只讲解如何部署在腾讯云COS上。


创建bucket并开启静态网站

云对象储存(COS)是什么可以自行查阅腾讯官方的details,此处不必赘述
首先进入对象储存页面创建一个bucket,因为在国内所以所属地域选择国内的地址即可

创建完成之后选择上传文件,把hexo/public/下的所有文件,包括其public目录下所有文件夹一并拖入并上传

上传完成

关于静态网站的概念:静态网站是指包含静态内容(如 HTML)或客户端脚本的网站,用户可以通过控制台对已绑定自定义域名的存储桶,配置静态网站。腾讯云 COS 支持静态网站的托管,不支持服务器端脚本编写。当需要部署动态网站时,则推荐使用云服务器 CVM 进行服务端代码部署。

接着点击基础配置,因为我是用来部署hexo静态博客的,所以直接下来最底部点击静态网站旁的编辑开启当前状态,索引文档为必填,是你上传的文件列表里的xxxx.html,一般默认为index.html,强制 HTTPS(可选),错误文档(可选),设置网站的重定向规则(可选),设置完成后,单击保存即可。


CDN 加速配置

CDN 加速适用于对 COS 存储桶中的内容进行下载、分发,特别是对于相同内容反复下载的使用场景。
用户可对以下域名进行管理,实现存储桶中对象的快速下载和分发:

  • 默认域名:即 COS 源站域名,是创建存储桶时,由系统根据存储桶名称和地域自动生成的,要与默认加速域名区分开。
  • 默认加速域名:经由 CDN 加速节点的域名,系统默认生成,用户可选择开启或关闭。
  • 自定义域名:用户可以为存储桶绑定已备案的自定义域名,通过自定义域名访问存储桶中的对象。

默认加速域名操作步骤:

单击存储桶详情界面上方的域名管理,单击编辑,把默认加速域名的当前状态设置为开启。源站类型通常默认为 XML 节点,如果作为源站的存储桶开启了静态网站,并且希望为静态网站加速,则选择为静态网站节点。
当存储桶为公有读时,则不需要开启 回源鉴权,最后单击【保存】按钮即可开启 CDN 加速。

注意:
如果用户在之前从未使用过腾讯云 CDN 服务,则无法进入域名管理,需先进入 CDN 控制台使用 CDN 服务。

自定义加速域名操作步骤:

进入域名管理页面,在第二栏“自定义加速域名”处单击添加域名,输入待绑定的自定义域名,如ww w.example.com,回源鉴权可不开启,单击右侧的保存即可完成域名添加。

注意:用户为域名启用 CDN 加速之后,任何人都可以通过此域名直接访问源站,所以如果您的数据有一定的私密性,请您务必通过 鉴权配置 来保护您的源站数据。


自定义域名添加DNS解析

当把上一步域名绑定储存桶和CDN加速域名完成之后,就可以开始优化DNS解析了。(默认域名无须添加解析)
到你的域名解析页面,添加上两条解析。

因为我前面绑定储存桶的自定义域名为二级域名:blog.yleao.com

所以我的主机记录为blog,记录类型为CNAME,线路类型为国外,指向在github pages上部署的hexo,记录值填写github上的域名,此条解析为国外用户访问,没经过国内CDN加速

另一条主机记录也为blog,记录类型为CNAME,线路类型为默认,指向在腾讯COS上部署的hexo,记录值填写上面CDN加速给你的记录值,默认为域名.cdn.dnsv1.com,此条解析为国内用户访问,经过国内CDN加速
国内使用COS,海外使用Github,这样能相应的提升访问速度。


测试

DNS查询:选择CNAME类型,看响应ip是否为添加解析的记录值

ping检测与速度测试:5个线路全部勾选上

从上图可以看出通过双服务器搭建的blog对于5条线路(国内和海外)的响应都是非常的快,国内的平均响应为28ms,国外的平均响应为23ms,也可以看出国内CDN成功加速,想要知道CDN是否加速成功,只需在不同地区ping同一个网址,得到不同的IP地址,那么这种情况就可以判断该网站开了CDN加速,图中最下显示19个不同的独立ip。

或者在cmd里ping一下域名也可知道是否CDN加速成功。如下图显示tencdns.net证明加速成功。

下面对比单服务器架设

我的顶级域名部署在腾讯云服务器广州区里,没开启CDN加速

对比可以看出无论是最快响应、最慢响应,还是平均响应,都不及我的二级域名。且没有CDN加速,所以只有一个独立IP。


注意

修改或编辑hexo之后要记得同步到两个服务器内,如果只同步了一个服务器,那么从国内和国外访问域名显示的内容则会不一样。比如只同步了国内服务器,那么从国内访问域名则会看到最新的同步内容,国外访问的话则不会,反之亦然。

 
-EOF-
0%