1. 架构设计
v3.1 版本
2. v2.x 存在的痛点
在v2.x版本中,围绕 服务器 遇到了两个主要的问题:
- 服务器成本高:博客以静态页面为主,理论上可以实现无服务器部署,但是为了防止恶意攻击,不得不使用服务器进行访问控制。
- 架构复杂:由于使用了服务器进行访问控制,虽然鉴权逻辑更加灵活,但是导致架构较为复杂,维护成本相对静态存储更高。
3. v3 对比 v2 的主要变化
针对以上痛点,v3 版本做出了如下改变:
- 删除服务器,使用 CDN 进行访问控制:在保证安全性的同时,降低成本,降低复杂度。
- DevOps 工作流从 阿里云云效 迁移到 腾讯云Coding:适配腾讯云 COS。
此次版本迁移的最主要原因是腾讯云 CDN 支持更加细粒度的访问控制,这在一定程度上满足了 cn 站当前的业务需求。
4. 主要数据流介绍
- 访问:访客/用户从公网访问 cn 站点,由 CDN 进行响应;回源等操作采用私有连接。
- 存储:创作者/管理员使用 GitHub 进行博客内容的维护,以及 com 站的自动化部署。
- 自动化部署:创作者/管理员将博客内容推送到 Coding,由 Coding 触发 cn 站的自动化部署。
4.1. 自动部署流程说明
- 自动添加备案信息
- 添加网站统计代码
- 搭建 Hexo 环境,并构建博客,生成静态页面
- 将静态页面上传到 COS
- 触发钉钉机器人,发送部署通知
- 刷新 CDN 缓存
腾讯云 CDN 连接 阿里云 OSS
由于原本的图库位于阿里云 OSS,同时 腾讯云 CDN 支持回源到第三方存储,包括 OSS,所以此次尝试了一下这个 腾讯云 CDN + 阿里云 OSS 的尴尬组合。
具体配置请参考:
- 腾讯云 CDN 搭配 阿里云 OSS - 零一居: https://blog.cc01cc.cn/2024/01/29/cloud-tencent-cdn-ali-oss/
- ID: E5-Q3+1.1.0
- 原文:https://blog.cc01cc.cn/2024/01/29/blog-build-cn-v3-v3-1/
- 署名:零一/cc01cc(zeo): https://github.com/cc01cc
- 欢迎大家转载分享,本作品采用署名-非商业性使用-禁止演绎 4.0 国际进行许可,转载请标明源地址,切莫修改或破坏原文结构,谢谢