腾讯cos配合cdn搭建hexo静态博客
前言
这次只用的是腾讯云cos存储+他的cdn国内加速
为什么要用cdn?
cdn可以实现用自己域名绑定cos给出的链接之后,用https的方式访问博客
hk 的bucket延迟较高
为什么要选择hk的cos?
因为hk的bucket不需要冗长的备案
套餐的选择
| cos地区 | cdn加速范围 | 价格 |
|---|---|---|
| hk | 国内 | |
| ap-beijing | 国内 |
更好的搭配方案
beijing的bucket+国内cdn 供国内访问
githubpage+国外的cdn 供国外访问
总的来说就是实现双线部署,一次提交两份博客
方法记录
hexo本地的操作
安装脚本并修改配置文件
进入hexo项目目录下执行以下命令安装一键部署脚本
npm install hexo-deployer-qcloud-cos --save
再到hexo项目配置文件中配置以下参数
deploy:
type: qcloud-cos
cosRegion: <您的cos bucket所在区域代码>
cosSecretId: <您的cos accessKeyId>
cosSecretKey: <您的cos accessKeySecret>
cosBucket: <您的cos bucket名称>
cosAppid: <您的腾讯云账户appid>
remotePath: <您要部署的目录,默认为根目录,默认无需设置>
腾讯云界面的操作
获取参数
首先我们需要在腾讯云控制台获取下列所需的配置参数:
| 名称 | 描述 |
|---|---|
| APPID | 开发者访问 COS 服务时拥有的用户维度唯一资源标识,用以标识资源 |
| SecretId | 开发者拥有的项目身份识别 ID,用以身份认证 |
| SecretKey | 开发者拥有的项目身份密钥 |
| Bucket | COS 中用于存储数据的容器名称 |
| Region | Bucket所在的地域信息。 |
获取APPID
访问腾讯云控制台 点击右上角用户名 > 账户信息 可以查看到APPID,写入


获取SecretId和SecretKey
点击控制台右上角用户名 > 访问管理
说明:此处为遵循云服务安全最佳实践,使用角色创建用户。如果图一时方便,可以直接使用访问管理页面的【访问密钥】> 【API密钥管理】创建密钥后使用,该密钥拥有控制您腾讯云账户所有资源的能力,强烈建议不要这么做!

进入后点击用户 > 新建用户

选择自定义创建

输入用户名称,访问方式仅勾选编程访问,点击下一步

在策略搜索框中输入QcloudCOSFullAccess 搜索后勾选该策略,点击下一步

确认信息无误后点击完成

记录该页面中的SecretId和SecretKey,写入配置文件_config.yml 中

获取bucket和region
首先从腾讯云可用地域代码 中选择距离自己较近或者自己喜欢的区域,记录区域代码和区域名称

bucket是我们创建的对象存储的空间名称,这里我们有两种方式可以创建bucket
方法1 使用
hexo-deployer-qcloud-cos插件自动创建将我们想要创建的bucket名称写入配置文件,然后执行hexo 部署命令 (部署命令参考文档)
hexo d部署工具在部署前会检测bucket是否存在,如果不存在,会在命令行中出现自动创建bucket确认,如图,输入y确认创建

创建成功后,将出现是否立即部署命令,输入y可立即部署,此处我们直接立即部署,便于后续测试

注意:bucket名称在cos所有区域是唯一的
方法2 使用腾讯云控制台手动创建
使用腾讯云控制台手动创建bucket的流程此处不再演示,大家可以参照官方文档 创建存储桶
注意:
- 用于部署静态网站的bucket访问权限必须设为public-read 即公共读!否则即使设置对象文件权限为公开,仍将会导致COS静态网站的索引文档功能失效
- 控制台创建的存储桶名称格式为-格式,如
newbucket-125000000在设置配置文件时,bucket只需要输入-前面的部分即可
修改存储桶bucket设置
开启静态网站设置
进入控制台对象存储管理页面
点击刚刚创建的存储桶名称,进入存储桶详情页面,点击基础配置

页面滑到底部,找到静态网站栏目,开启静态网站,索引文档设置为index.html

设置自定义域名
点击存储桶详情页面的域名管理选项卡,在自定义源站域名栏目下点击添加域名,源站类型选择【静态网站源站】,在域名位置输入博客要解析的域名,点击保存,复制CNAME值,到域名服务商处设置解析,此处需要设置的域名必须时已经备案过的域名,若域名尚未备案,则不能设置。(如果是hk的bucket,不需要备案,不过最好还是备案下,不然之后的cdn无法进行国内加速)

开启cdn加速,并实现全站https
CDN 加速适用于对 COS 存储桶中的内容进行下载、分发,特别是对于相同内容反复下载的使用场景。
用户可对以下域名进行管理,实现存储桶中对象的快速下载和分发:
- 默认域名:即 COS 源站域名,是创建存储桶时,由系统根据存储桶名称和地域自动生成的,要与默认加速域名区分开。
- 默认加速域名:经由 CDN 加速节点的域名,系统默认生成,用户可选择开启或关闭。
- 自定义域名:用户可以为存储桶绑定已备案的自定义域名,通过自定义域名访问存储桶中的对象。
默认加速域名操作步骤:
单击存储桶详情界面上方的域名管理,单击编辑,把默认加速域名的当前状态设置为开启。源站类型通常默认为 XML 节点,如果作为源站的存储桶开启了静态网站,并且希望为静态网站加速,则选择为静态网站节点。(此处因为我布置的hexo的静态博客,因此需要勾选静态网站节点)
当存储桶为公有读时,则不需要开启 回源鉴权,最后单击【保存】按钮即可开启 CDN 加速。
注意:
如果用户在之前从未使用过腾讯云 CDN 服务,则无法进入域名管理,需先进入 CDN 控制台使用 CDN 服务。
自定义加速域名操作步骤:
进入域名管理页面,在第二栏“自定义加速域名”处单击添加域名,输入待绑定的自定义域名,如ww w.example.com,回源鉴权可不开启,单击右侧的保存即可完成域名添加。

注意:用户为域名启用 CDN 加速之后,任何人都可以通过此域名直接访问源站,所以如果您的数据有一定的私密性,请您务必通过 鉴权配置 来保护您的源站数据。
自定义域名添加DNS解析
当把上一步域名绑定储存桶和CDN加速域名完成之后,就可以开始优化DNS解析了。(默认域名无须添加解析)
到你的域名解析页面,添加上两条解析。
测试
DNS查询:选择CNAME类型,看响应ip是否为添加解析的记录值

https设置(如果没有这方面需求可忽略这一步)
进入到配置证书的界面

根据提示添加证书信息

证书可以使用腾讯或者阿里提供的免费证书,下载ngix那个版本的就好(实在不知道怎么填写的参考这里)
回源协议勾选HTTPS就好
最后访问你的域名,看看有没有那把小锁

至此,使用腾讯cos建站并使用cdn实现https 已经结束
