简介
前段时间发现我的博客老是报456
错误,而且国内速度加载越来越慢,不知道是什么问题,打算优化下。正在我查资料的时候,突然发现,腾讯云COS竟然支持静态网站部署了,卧槽,那我还放在Github Page干嘛,想办法迁移到国内吧!然后我再Hexo插件库发现了这么一个东西hexo-deployer-cos
,有大神写了快速部署插件,说用就用,但是部署的时候踩了两三次坑,固写本文记录。本文域名将用www.test.com
代替。
准备
- 你需要在本地部署好hexo环境,可以参考我以前写的Hexo博客的安装部署及多电脑同步教程。
- 你需要申请腾讯云COS服务,参照COS文档,你需要获取
APPID
,SecretId
,SecretKey
,Bucket
,Region
这五个参数,具体如下:
名称 | 描述 |
---|---|
APPID | 开发者访问 COS 服务时拥有的用户维度唯一资源标识,用以标识资源 |
SecretId | 开发者拥有的项目身份识别 ID,用以身份认证 |
SecretKey | 开发者拥有的项目身份密钥 |
Bucket | COS 中用于存储数据的容器,本文创建以www为例 |
Region | 域名中的地域信息。枚举值参见 可用地域 文档,如:ap-beijing, ap-hongkong, eu-frankfurt 等 |
- 安装好
hexo-deployer-cos
插件,这个最简单,直接执行npm install hexo-deployer-cos --save
命令即可。
配置COS
如果你已经在准备步骤中注册了帐号那么请按照下面的步骤继续,首先,点击对象存储控制台,然后点击创建Bucket按钮。
请按照图中设置新建您的Bucket,注意名称仅支持小写字母、数字和 - 的组合,不能超过40字符。 我这里以www
为例。
等待系统创建Bucket,创建完成后,点击您的Bucket名称,进入www
管理页面。然后我们点击基础配置按钮。下拉到静态网站选项,点击编辑,如下所示。
按照图中设置打开当前状态,Index索引按钮,Http状态码若您网站目录有相关文件请打开,否则保持默认。
然后我们再次点击域名管理页面。下拉到下面的自定义域名,点击 添加域名按钮。输入您自定义域名,本文以www.test.com
为例,CDN加速默认打开,然后点击保存。
接下来,等待域名状态变为已上线,复制CNAME中的域名,本文则以www.test.cn.cdn.dnsv1.com
为例。
然后,我们需要将www.test.cn.cdn.dnsv1.com
解析到您的域名,进入腾讯云域名服务控制台,如果你使用的是其他域名服务商,请用其他服务商进行解析。
添加CNAME域名为www.test.cn.cdn.dnsv1.com
,主机记录请设置为www
。
这样,你的COS基础设置就完成啦。
给你的服务器配置HTTPS(可选)
本文是建立在您在腾讯云申请过免费的SSL证书的前提下,如果您没有申请,请跳过本步骤
点击CDN控制台页面,你会看到你在上一步中添加的域名已经自动设置,我们点击相应域名的管理,然后点击高级配置。找到HTTPS配置,然后点击前往配置。
在选择证书页面中的证书列表选择你的证书。其他默认,然后选择提交。
等待部署完成,最近我们再次回到CDN中的高级配置页面,打开强制跳转HTTPS:按钮,如图
现在,你的服务器已经通过SSL加密了。
配置hexo部署cos配置
我们需要安装hexo-deployer-cos
插件,如果你已经在准备中安装了,那么就不用安装了。否则按照下面的命令安装。
npm install hexo-deployer-cos --save
接下面我们配置hexo的配置文件,首先打开根目录的_config.yml
配置文件,将原来的deploy
替换为下面的内容:
deploy:
type: cos
appId: yourAPPID
secretId: yourSecretId
secretKey: yourSecretKey
bucket: yourBucketName-yourAPPID
region: yourRegion
细心的同学发现我的配置与hexo-deployer-cos
的Github项目页面给出的配置不同,为什么呢?坑来了,该插件作者更新了插件,但是没更新Readme文档,用原作者的配置文件会报错。所以请用我给出的配置。那么具体配置如下。
假如说我的APPID
是1251234567
,secretId
是ABCDEFGHIGKLMNOPQRSTUVWXYZ
,secretKey
是abcdefghijklmnopqrstuvwxyz
,创建的bucket
是www
,region
可用地区是成都,也就是ap-chengdu
,这个详见准备的表格。
那么我的_config.yml
中deploy
配置为:
......
deploy:
type: cos
appId: 1251234567
secretId: ABCDEFGHIGKLMNOPQRSTUVWXYZ
secretKey: abcdefghijklmnopqrstuvwxyz
bucket: www-1251234567
region: ap-chengdu
......
部署Hexo到COS
现在你已经完成了最后的设置,最后一步就是需要部署项目到COS了,输入我们熟悉的部署命令:
代码语言:javascript复制hexo g -d
你会看到如下输出:
代码语言:javascript复制INFO Start processing
INFO Generating Baidu urls for last 1 posts
INFO Posts urls generated in baidu_urls.txt
https://www.techeek.cn/2018/08/14/Ubuntu-DTS-translation/
INFO Files loaded in 1.24 s
INFO Generated: sitemap.xml
......
INFO 成功上传:E:Desktop临时gitwww.test.compublic2016 6 5Workerman-Tcpindex.html
INFO 成功上传:E:Desktop临时gitwww.test.compublic2017 3 9docker-lnmp-typechoindex.html
INFO 成功上传:E:Desktop临时gitwww.test.compublic2016 928dontstarve-serverindex.html
......
好了,现在我们访问你的域名看看是否上传成功了?在浏览器打开https://www.test.com
我们看到项目已经上传,我们在打开COS的Bucket,看看是不是网站真的在Bucket上。
我们看到,服务器在COS运行成功了。
结论
这样,我的网站速度访问不知道快到哪里去了,腾讯云的产品就是赞!而且CDN和COS都限流量免费,像我这种小网站,基本用不完,如果你在在搭建hexo博客,何不尝试吧网站搭建在腾讯云的COS上呢?
2018年10月18日 这里补充下,腾讯云给新用户注册的账户全部变更为COSV5版本了,而我教程是V4的版本,对于V5如何建立静态网站,大家可以参考我另一篇教程:https://cloud.tencent.com/developer/article/1355233