laravel Envoyer如何实现零停机部署_Laravel Envoyer零停机部署教程

laravel Envoyer通过符号链接切换实现零停机部署,推送代码后自动拉取新版本到独立目录,执行依赖安装、迁移、构建等任务,完成后原子性切换current链接指向新版本。关键配置包括队列异步处理、数据库迁移队列化与向后兼容、共享storage和.env文件、健康检查与自动回滚。实际操作需连接git仓库、配置服务器信息、设置部署脚本并启用零停机选项。整个流程确保服务不中断,核心在于合理管理迁移兼容性与队列,避免请求阻塞,实现无缝升级。

laravel Envoyer如何实现零停机部署_Laravel Envoyer零停机部署教程

Laravel Envoyer 是 Laravel 官方推出的自动化部署工具,专为实现零停机部署而设计。它通过与 Git 集成,在代码推送后自动执行一系列部署任务,确保线上服务在更新过程中始终可用。核心原理是利用“符号链接切换”机制,在新旧版本之间平滑过渡,避免请求中断。

Envoyer 零停机部署工作流程

Envoyer 并不会直接覆盖当前运行的代码,而是创建一个全新的发布目录。每次部署都会基于最新的 Git 提交生成独立的版本文件夹。部署流程如下:

  • 从 Git 仓库拉取最新代码到新的时间戳命名目录(如 release/20250405120000
  • 在新目录中安装依赖(composer install)、编译前端资源(npm run build)等
  • 执行数据库迁移(可配置为队列或维护模式下进行)
  • 完成所有任务后,原子性地更新 current 符号链接指向新版本目录
  • 旧版本保留,可用于快速回滚

由于符号链接的切换几乎是瞬间完成的,用户请求不会中断,从而实现零停机。

关键配置确保零停机

要真正实现无感知部署,需正确配置以下几项:

  • 队列任务处理:将耗时操作放入队列,避免阻塞部署。使用 Horizon 或 Supervisor 管理队列进程,部署时可选择不重启队列,或优雅重启
  • 数据库迁移策略:启用“在队列中运行迁移”选项,防止大表变更锁表导致请求超时。同时遵循“向后兼容”原则,分阶段提交迁移文件
  • 共享文件与环境配置:通过 Envoyer 设置共享目录(如 storage、.env),确保新版本自动继承上传文件和配置
  • 健康检查与回滚机制:配置部署后 webhook 检查应用状态,异常时自动触发回滚到上一稳定版本

实际部署操作步骤

登录 Envoyer 仪表板后,按以下流程设置项目:

  • 连接 Git 仓库(githubgitlab 或 Bitbucket)
  • 配置服务器信息:ssh 访问凭证、项目路径、php 版本等
  • 设置部署脚本:自定义 composer 命令、清除缓存、构建前端
  • 启用“零停机部署”选项并保存
  • 推送代码或手动触发部署

部署过程中可在界面实时查看日志输出,确认每一步执行情况。成功后 current 链接自动切换,访问站点即可生效。

基本上就这些。Envoyer 的价值在于简化复杂流程,只要合理配置,Laravel 项目可以稳定实现无缝升级。不复杂但容易忽略的是迁移兼容性和队列管理,这两点直接影响用户体验。

以上就是laravel Envoyer如何实现零停机部署_Laravel Envoyer零停机部署教程的详细内容,更多请关注php中文网其它相关文章!

上一篇
下一篇
text=ZqhQzanResources