TCB 硬核博客加速,解决 pages 的龟速问题

Created
Feb 27, 2021 04:18 AM
Tags
cloudbase
 
本文将介绍:
  • tcb可见的优点
  • 利用github actions自动部署到tcb
  • 针对 hexo 的额外配置
  • tcb免费额度和价格

前言

相信搭建过静态博客的小伙伴们在部署时都或多或少有过不愉快的体验,比如各大pages (Github , Gitee , Coding),速度、稳定、价格只能选一个,不可兼得。最近学 github actions 时看到了这篇文章 比快更快,Github Action + 云开发部署静态网站作者安利了腾讯云开发(以下简称tcb)的种种优势,本来当成广告去看的,抱着学习和实践 github actions 的态度(其实是发现 tcb 这简称与我网站域名颇有几分缘分🤤),发现了一块新大陆。

硬核加速个人体验报告

实际测试我的服务器套阿里cdn 和 tcb静态部署的表现不相上下,毕竟都是国内服务器+ cdn ,无比较的意义;如果和 github pages比较一下呢。
1.tcb 静态托管
notion image
2.Github pages (部分资源已套cdn)
notion image

利用Github actions 自动部署到 tcb

准备:自定义域名必须备案

了解价格 避免采坑

当然了,云开发4月底刚刚发布,有一年的小福利(需要站点运营3个月以上)
如果在没有羊毛的情况也可以试用,再参考定价。
具体定价参考 静态网站托管
可以看到用于网站托管的按量计费在容量上(对于小站)基本不花钱(20M的网站数据100天花费0.88064)
那么剩下的就是流量了,单价 0.21/GB(可行性需要自己斟酌)
实际上,比如我的阿里 cdn ,两个月来花费的流量是 ... 4Gb (哈哈哈, 说来惭愧)

进入正题,先去开通tcb

登录 腾讯云云开发控制台 ,创建环境 ,记录环境ID备用
notion image
等待创建成功后,进入所创建的环境,左侧菜单栏找到静态网络托管,开启使用,进入基础配置,绑定域名并配置证书(和cdn的配置类似)
notion image

访问管理(获取 secretId&secretKey)

进入 访问管理页面,创建子账号,获取 secretId & secretKey 保存备用
notion image

配置github actions

github actions 简单来说就是用 github 的虚拟机帮你完成一些重复性的操作(actions),更好的是这些集成操作的脚本很多都已经由其他开发者共享,使得它拥有一个良好的生态。详细可以参考 阮老师的教程
所以,为了更方便地部署,腾讯开发者完善了 Tencent CloudBase Github Action  ,可以轻易地上传到tcb啦!
本次教程以 hexo 为例,其他环境类似或更为简单
source git repo 的根目录下新建.github/workflows/tcb_deploy.yml
tcb_deploy.yml 中写入
name: DeployBeetcbToTcb #workflow在github显示的名字

on: push #触发workflows的方式 多条件触发写法 on: [push,pull_request]

jobs:
  deploy: #job ID 
    runs-on: ubuntu-latest #运行job的系统
    name: Tcb Github Action Deploy Job #job在github显示的名称
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Deploy static to Tcb
        id: beetcbTcb
        uses: TencentCloudBase/cloudbase-action@v1.1.0 #使用tcb的github action
        with:  #tcb相关配置,前三项去github配置
          secretId: $
          secretKey: $
          envId: $
          staticSrcPath: ./ #推送目录,当前为根目录
workflow语法详细解释:https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#name

适配 hexo (就是填坑而已)

  1. 让 hexo 不要渲染 workflow 下的 yaml 文件
    1. 在根目录配置文件里配置skip_render
      skip_render: '.github/**/*' #不对yaml渲染
  1. 让 hexo 不要忽略 .github 目录
    1. hexo 默认忽略隐藏文件夹 ,要解决这个问题,在根目录配置文件里配置include
      include:
        # 取消忽略.github文件夹
        - ".github/**/*"
  1. 解决git推送时不推送. 前缀的问题
    1. 在 配置文件的 deploy 下添加
      ignore_hidden: false
      如下图:
      notion image
       

在repo里添加机密

secretId: $
secretKey: $
envId: $
tcb_deploy.yml 文件里,上面的三行代码就是连接tcb 与 github actions的机密;出于安全考虑,我们不可能把这些内容直接写进源文件,而是把机密添加进repo,由 github 相对安全地保管起来。然后 yaml 文件调用。具体操作:
在项目 Setting/ Secrets 里依次配置提前保存的 SECRET_ID 、SECRET_KEYENV_ID 信息

hexo cl && hexo g && hexo d 享受成果吧

补充

可能机智的胖友们已经想到了,可以利用 github actions 自动完成 hexo 的相关操作,确实可以(网上教程很多,不再赘述,同时也解决了换电脑需要重装hexo的痛处),再配合 tcb ,写博客就无比方便啦!
还不快去试试!!!
如有错误,恳请指正