• 技术
一次博客系统的稳定性与部署优化记录
#Astro
#部署
#GitHub Actions
#优化
#复盘
这篇文章记录最近一轮博客改造,目标很明确:更稳、更省事、更安全。
1. 广告脚本加载策略优化
在调试过程中,我把广告脚本的加载逻辑做了收敛,避免在不合适的环境触发加载。
这次调整后的思路是:
- 仅在正式站点环境按条件加载脚本
- 本地开发和非目标域名环境不加载
- 减少无效请求和插件拦截干扰
这样做的收益是,开发过程更干净,也能避免线上线下行为不一致带来的误判。
2. 从手动部署切到自动部署
之前每次写完文章都要手动上传,流程重复且容易漏操作。现在已经改成:
- 推送到
master后自动触发构建与部署 - CI 中统一执行依赖安装与静态构建
- 构建产物自动发布到服务器目录
这一点对内容型博客非常关键:写完就发,不再被重复部署动作打断。
3. SSH 发布链路标准化
为了让自动部署长期可维护,发布链路也做了统一:
- 使用密钥方式连接服务器,避免交互式密码输入
- 在工作流中显式准备
known_hosts - 部署前增加 SSH 连通性校验,失败时更容易定位
最终效果是部署日志更可读,出问题时可以快速判断是连接问题还是发布问题。
4. 发布策略收敛:只覆盖同名文件,不删除其他文件
这次最重要的一点是发布策略调整。
当前策略是:
- 只将
dist产物解包到目标目录 - 同名文件会被覆盖
- 目标目录中未同名的其他文件保持不变
这个策略更适合线上存在额外文件的场景,能避免误删非构建产物。
5. 过程中的几个经验
这轮优化也踩了一些坑,最后沉淀出几条经验:
- 自动部署先保证可观测性,再追求“步骤最少”
- 发布脚本尽量避免依赖远端不一定存在的工具
- 涉及凭据和连接信息时,统一走密钥与平台密文配置
- 部署策略要先定义“哪些文件该改,哪些文件不能动”
6. 下一步计划
下一步会继续做四件事:
- 进一步细化触发条件,只在内容或模板变更时触发完整部署
- 增加发布后的可用性检查,让“发布成功”不仅是命令成功,还包括页面可访问
- 实现使用龙虾来发布内容,打通从写作到发布的自动化链路
- 接入图片自动生成能力,提升内容发布效率与配图一致性
这次改造完成后,博客已经从“能用”进入“可持续维护”的状态。后续再迭代,就可以把精力更多放在内容本身。