Web Explorer
技术

一次博客系统的稳定性与部署优化记录

#Astro #部署 #GitHub Actions #优化 #复盘

这篇文章记录最近一轮博客改造,目标很明确:更稳、更省事、更安全

1. 广告脚本加载策略优化

在调试过程中,我把广告脚本的加载逻辑做了收敛,避免在不合适的环境触发加载。

这次调整后的思路是:

  • 仅在正式站点环境按条件加载脚本
  • 本地开发和非目标域名环境不加载
  • 减少无效请求和插件拦截干扰

这样做的收益是,开发过程更干净,也能避免线上线下行为不一致带来的误判。

2. 从手动部署切到自动部署

之前每次写完文章都要手动上传,流程重复且容易漏操作。现在已经改成:

  • 推送到 master 后自动触发构建与部署
  • CI 中统一执行依赖安装与静态构建
  • 构建产物自动发布到服务器目录

这一点对内容型博客非常关键:写完就发,不再被重复部署动作打断。

3. SSH 发布链路标准化

为了让自动部署长期可维护,发布链路也做了统一:

  • 使用密钥方式连接服务器,避免交互式密码输入
  • 在工作流中显式准备 known_hosts
  • 部署前增加 SSH 连通性校验,失败时更容易定位

最终效果是部署日志更可读,出问题时可以快速判断是连接问题还是发布问题。

4. 发布策略收敛:只覆盖同名文件,不删除其他文件

这次最重要的一点是发布策略调整。

当前策略是:

  • 只将 dist 产物解包到目标目录
  • 同名文件会被覆盖
  • 目标目录中未同名的其他文件保持不变

这个策略更适合线上存在额外文件的场景,能避免误删非构建产物。

5. 过程中的几个经验

这轮优化也踩了一些坑,最后沉淀出几条经验:

  • 自动部署先保证可观测性,再追求“步骤最少”
  • 发布脚本尽量避免依赖远端不一定存在的工具
  • 涉及凭据和连接信息时,统一走密钥与平台密文配置
  • 部署策略要先定义“哪些文件该改,哪些文件不能动”

6. 下一步计划

下一步会继续做四件事:

  1. 进一步细化触发条件,只在内容或模板变更时触发完整部署
  2. 增加发布后的可用性检查,让“发布成功”不仅是命令成功,还包括页面可访问
  3. 实现使用龙虾来发布内容,打通从写作到发布的自动化链路
  4. 接入图片自动生成能力,提升内容发布效率与配图一致性

这次改造完成后,博客已经从“能用”进入“可持续维护”的状态。后续再迭代,就可以把精力更多放在内容本身。