对象存储搭建静态博客
# 博客迁移思考
之前本人博客是搭建在服务器上面,采用的halo (opens new window)这款建站工具。目前也已经维护了快2年多了,最近这段时间学习总结过程中发现了一些问题:
- 服务器成本大
- 知识点不够模块化,难以形成系统
针对上面两点,决定进行博客的迁移,主要有三方面考虑:
- 减少维护成本
- 知识点模块化、专题化
- 实践案例进行归档
结合了多个博客方案和自我考虑,最终决定采用VuePress (opens new window)+对象存储来进行静态博客搭建。
- 对象存储:按照流量进行计算,维护简单、成本低
- VuePress:能够满足我知识点模块化、案例归档的需求,且它整体阅读效果很好。
# 对象存储配置
# 步骤1:新建存储桶
新建存储桶
设置共有读私有写
配置静态网站
# 步骤2:访问静态博客
- 随便书写index.html,放入对象存储
- 根据访问节点,进行查看
到此我们一个简单的demo就实现了,现在就需要把我们真正打包后的博客文件放入到存储桶里。
# GithubActions配置
博客采用vuepress-theme-vdoing (opens new window)进行了搭建,并且将项目推送到Github代码仓库 (opens new window)。
由于我们会把代码推送到仓库,但是对象存储中需要存储打包后的文件,所以从我们写了文档,到最终博客展示,需要经历两个过程:
- 文档书写,代码推送
- 打包项目,将打包后文件放入对象存储
由于第一个过程是积累的过程,是必不可少的,但是第二个过程是重复复杂的,所以需要将这两个过程合并成一个过程,实现当我们推送代码之后,自动打包部署。
这里我们使用GithubActions进行配置,相关教程:GitHub Actions 入门教程 (opens new window)
# 配置密钥
因为我们的对象存储是第三方服务商,代码仓库想要访问第三方服务是需要密钥,而密钥不能配置在代码块中,需要配置在仓库的secrets中。
配置步骤如下:
# 工作流文件
文件配置请参考tencent-cos-action (opens new window)
如果是其他服务商,可自行进行寻找对应的action。
# 域名配置
经过上面两个步骤,我们实现了代码推送后,自动打包并部署到对象存储,现在我们需要开启自定义源站域名。
相关详细步骤请参考:自定义域名 (opens new window)
购买域名、备案
申请证书
域名添加解析
自定义源站域名
绑定证书
其中域名添加解析的记录值,是CNAME