在阿里云找了半天没找到关于 serverless 部署 hexo 的文档,还是腾讯云比较全,记录一下在腾讯云 serveless Framework 部署 hexo 过程.
npm 方式安装
使用 npm 安装前,需要确保您的环境中已安装好了 Node(版本需要 > 10)以及 npm(查看 Node.js 安装指南)。
1 2 3 4 5
| $ node -v v12.18.0 $ npm -v 7.0.10
|
安装命令行执行
1 2 3 4
| npm install -g serverless
mac如提示没有权限运行 sudo npm install -g serverless
|
更新 serverless
1
| npm update -g serverless
|
Serverless 的版本
部署 Hexo 博客
前提条件
- 已安装 Node.js(Node.js 版本需不低于 8.6,建议使用 Node.js10.0 及以上版本)
- 已安装 Git
hexo 中文官方文档
安装
通过 hexo-cli 脚手架安装 hexo
1 2 3 4 5
| $ npm install -g hexo-cli # 安装脚手架 $ hexo init hexo # 生成 Hexo 目录 $ cd hexo $ npm install
|
生成静态页面
预览
本地预览 hexo,运行以下命令打开 localhost:4000 查看页面效果
配置
在 hexo 目录下,创建 serverless.yml 配置文件:
配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| # serverless.yml
component: website # (必填) 引用 component 的名称,当前用到的是 tencent-website 组件 name: hexodemo # (必填) 该 website 组件创建的实例名称 org: test # (可选) 用于记录组织信息,默认值为您的腾讯云账号 APPID app: websiteApp # (可选) 该 website 应用名称 stage: dev # (可选) 用于区分环境信息,默认值是 dev
inputs: src: src: ./public # Upload static files generated by HEXO index: index.html # dist: ./dist # hook: npm run build # websitePath: ./ region: ap-guangzhou bucketName: my-bucket protocol: https
|
部署
执行下面的命令然后扫码登录即可,稍等一下就会生成部署好的地址了,记得每次更新文章都重新执行一下 hexo g 重新生成静态资源
如果不想一直扫码登录则需要配置账号,只需要在根目录下创建.env 文件
1 2
| $ touch .env # 腾讯云的配置信息
|
在 .env 文件中配置腾讯云的 SecretId 和 SecretKey 信息并保存:
1 2 3 4
| # .env TENCENT_SECRET_ID=123 TENCENT_SECRET_KEY=123
|
自定义域名
虽然可以访问了,但是说实话这一长串的 http 地址还是很难看,对比了一下还是腾讯云的域名便宜一点,注册购买好之后,在 serverless.yml 配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| # serverless.yml
component: website name: myWebsite org: test app: websiteApp stage: dev
inputs: src: src: ./public index: index.html error: index.html region: ap-guangzhou bucketName: my-hexo-bucket protocol: https # 新增的 CDN 自定义域名配置 hosts: - host: www.example.com # 希望配置的自定义域名 https: switch: on http2: off certInfo: certId: 'abc' # certificate: 'xxx' # privateKey: 'xxx'
|
再次执行 serverless deploy 进行部署
部署好之后会输出类似以下内容,然后再域名管理后台添加记录解析。新注册备案的域名在两个小时以后重新尝试。
1 2 3 4 5 6 7
| myWebsite: url: https://my-hexo-bucket-1250000000.cos-website.ap-guangzhou.myqcloud.com env: host: - https://www.example.com (CNAME: www.example.com.cdn.dnsv1.com) 17s › myWebsite › done
|
部署完成后,在命令行的输出中可以查看到一个以 .cdn.dnsv1.com 为后缀的 CNAME 域名。参考 CNAME 配置文档,在 DNS 服务商处设置好对应的 CNAME 并生效后,即可访问自定义域名。
以上绑定域名也可以在可视化配置后台配置。进入详情,点击左侧域名与传输管理进行配置
存储桶列表
需要注意的是,如果想使用自定义域名,还需要进行域名备案。而腾讯云 serverless 的域名备案需要额外购买 110 元 5 年的备案域名包…
serverless 备案文档
- 腾讯云域名实名认证之后满 3 个自然日才能备案
- 腾讯审核需要一天,管局审核需要 20 天不等
添加域名解析
参考腾讯域名解析相关文档
相关文档
本文标题:serverless部署hexo博客小记
文章作者:Niuhk
发布时间:2020-12-27
最后更新:2022-01-23
原始链接:https://www.niuhk.cn/2020/12/27/serverless部署hexo/
版权声明:转载请注明出处!