博客 cn 站搭建 v3 v3.1

2024-01-29 · 524 字 · 约 2 分钟

本文最后更新于 2024-02-23,部分内容可能已过时。

# 1. 架构设计

v3.1 版本

blog-build-v3.1

# 2. v2.x 存在的痛点

在v2.x版本中,围绕 服务器 遇到了两个主要的问题:

  1. 服务器成本高:博客以静态页面为主,理论上可以实现无服务器部署,但是为了防止恶意攻击,不得不使用服务器进行访问控制。
  2. 架构复杂:由于使用了服务器进行访问控制,虽然鉴权逻辑更加灵活,但是导致架构较为复杂,维护成本相对静态存储更高。

# 3. v3 对比 v2 的主要变化

针对以上痛点,v3 版本做出了如下改变:

  1. 删除服务器,使用 CDN 进行访问控制:在保证安全性的同时,降低成本,降低复杂度。
  2. DevOps 工作流从 阿里云云效 迁移到 腾讯云Coding:适配腾讯云 COS。

此次版本迁移的最主要原因是腾讯云 CDN 支持更加细粒度的访问控制,这在一定程度上满足了 cn 站当前的业务需求。

# 4. 主要数据流介绍

  1. 访问:访客/用户从公网访问 cn 站点,由 CDN 进行响应;回源等操作采用私有连接。
  2. 存储:创作者/管理员使用 GitHub 进行博客内容的维护,以及 com 站的自动化部署。
  3. 自动化部署:创作者/管理员将博客内容推送到 Coding,由 Coding 触发 cn 站的自动化部署。

# 4.1. 自动部署流程说明

  1. 自动添加备案信息
  2. 添加网站统计代码
  3. 搭建 Hexo 环境,并构建博客,生成静态页面
  4. 将静态页面上传到 COS
  5. 触发钉钉机器人,发送部署通知
  6. 刷新 CDN 缓存

# 腾讯云 CDN 连接 阿里云 OSS

由于原本的图库位于阿里云 OSS,同时 腾讯云 CDN 支持回源到第三方存储,包括 OSS,所以此次尝试了一下这个 腾讯云 CDN + 阿里云 OSS 的尴尬组合。

具体配置请参考:


ID: B2-P2+1.1.0