首页 > php框架 > Laravel > 正文

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

穿越時空
发布: 2025-10-31 16:36:02
原创
533人浏览过
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 仓库(GitHub、GitLab 或 Bitbucket)
  • 配置服务器信息:SSH 访问凭证、项目路径、PHP 版本等
  • 设置部署脚本:自定义 composer 命令、清除缓存、构建前端等
  • 启用“零停机部署”选项并保存
  • 推送代码或手动触发部署

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

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

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

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号