如何在腾讯云COS部署HEXO博客

简介

前段时间发现我的博客老是报456错误,而且国内速度加载越来越慢,不知道是什么问题,打算优化下。正在我查资料的时候,突然发现,腾讯云COS竟然支持静态网站部署了,卧槽,那我还放在Github Page干嘛,想办法迁移到国内吧!然后我再Hexo插件库发现了这么一个东西hexo-deployer-cos,有大神写了快速部署插件,说用就用,但是部署的时候踩了两三次坑,固写本文记录。本文域名将用www.test.com代替。

准备

名称

描述

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文档,用原作者的配置文件会报错。所以请用我给出的配置。那么具体配置如下。

假如说我的APPID1251234567secretIdABCDEFGHIGKLMNOPQRSTUVWXYZsecretKeyabcdefghijklmnopqrstuvwxyz,创建的bucketwwwregion可用地区是成都,也就是ap-chengdu,这个详见准备的表格。

那么我的_config.ymldeploy配置为:

......
deploy: 
  type: cos
  appId: 1251234567
  secretId: ABCDEFGHIGKLMNOPQRSTUVWXYZ
  secretKey: abcdefghijklmnopqrstuvwxyz
  bucket: www-1251234567
  region: ap-chengdu
......

部署Hexo到COS

现在你已经完成了最后的设置,最后一步就是需要部署项目到COS了,输入我们熟悉的部署命令:

hexo g -d

你会看到如下输出:

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\临时\git\www.test.com\public\2016\06\05\Workerman-Tcp\index.html
INFO  成功上传:E:\Desktop\临时\git\www.test.com\public\2017\03\09\docker-lnmp-typecho\index.html
INFO  成功上传:E:\Desktop\临时\git\www.test.com\public\2016\09\28\dontstarve-server\index.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

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏進无尽的文章

基础篇-修改工程名称及中工程中的某一类名

入行这么久,自己也记录了很多的开发笔记,却一直堆在小角落里,没有系统的梳理,也难成体系,最近在整理很久之前的笔记,虽然对于熟手来说不值得一看,但是还是打算写成文...

1071
来自专栏陈仁松博客

UWP基础教程 - App多语言支持

UWP实现本地化非常简单,所谓本地化表现最为直观的就是UI上文字和布局方式了,针对文字,提供不同的语言资源文件即可,而针对布局方式,比如在 阿拉伯地区 阅读顺序...

3606
来自专栏前端儿

前端代码乱糟糟?是时候引入代码质量检查工具了

为了统一团队的代码规范,除了一纸规范说明之外,还需要引入工具进行限制。虽说工具并不能完全实现规范中的规则,但至少能够在一定程度上缓解代码不统一的局面。

3301
来自专栏Aloys的开发之路

PDF常见问题总结

Acrobat保存PDF文档报错“读取本文档时出现问题(135)” 用Acrobat修改PDF文档,保存的时候报错:“文档无法保存。读取本文档时出现问题(13...

3617
来自专栏Felix的技术分享

在macOS 10.12 上编译 Android 5.1

2544
来自专栏君赏技术博客

第一次和你见面,我就深深的爱上你-Xcode Bot

最近研究起了 APP 的自动化测试,发现了 Xcode Bot自动化打包测试发布的功能,就开始研究起来。

1891
来自专栏coder修行路

Go实现海量日志收集系统(二)

一篇文章主要是关于整体架构以及用到的软件的一些介绍,这一篇文章是对各个软件的使用介绍,当然这里主要是关于架构中我们agent的实现用到的内容 关于zookeep...

1.5K10
来自专栏小尘哥的专栏

前后端分离Nuxt.js解决SEO问题

背景:由于后端程序猿通常对CSS 、JS掌握不是特别好,通常的开发模式,UI把静态html做好交给程序猿,程序猿开发,把静态html变成动态的时候经常会有各种样...

4244
来自专栏LinXunFeng的专栏

Xcode8 最快最方便的安装插件方案

1055
来自专栏Java技术分享

基于Metronic的Bootstrap开发框架经验总结(2)--列表分页处理和插件JSTree的使用

在上篇《基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理》介绍了Bootstrap开发框架的一些基础性概括,包括总体界面...

4195

扫码关注云+社区

领取腾讯云代金券