跳到正文

JAR/WAR 如何发布到多台 Linux 服务器

把 JAR/WAR 发布到多台 Linux 服务器,不只是批量复制文件。一条可复用的发布流程,应同时固定制品、目标和站点参数,再完成前置检查、备份、停服、替换、启动、健康检查和结果记录。

先分清 JAR 和 WAR 怎样运行

JAR 常见于独立 Java 进程,可能由 systemd、脚本或容器管理;WAR 常见于 Servlet 容器或应用服务器。两者的停止对象、目标路径、展开目录、启动方式和验收条件可能不同。

因此,不要用一条“拷贝后重启”命令覆盖所有 Java 应用。先记录每个模块的运行方式,再复用流程。

执行前固定三类输入

  • 制品清单:每个 JAR/WAR 的版本、来源和完整性校验,以及多个微服务之间的配套关系。
  • 站点参数:安装路径、服务名、端口、运行用户、配置位置和健康检查地址。
  • 执行计划:哪些站点在本次范围、立即还是定时执行、是否分批,以及谁负责验收。

这三类输入应在执行前确认,而不是逐台登录后现场决定。

一次更新至少包含七步

  1. 前置检查:确认当前版本、进程状态、路径、空间和必要依赖。
  2. 备份:保留旧制品和与本次变更相关的配置,并记录恢复方法。
  3. 停止服务:使用明确的服务名或管理方式,不用模糊进程匹配代替。
  4. 替换制品:放入指定目录,确认所有者、权限和完整性。
  5. 启动服务:使用已定义的运行参数和配置来源。
  6. 健康检查:除了进程存在,还要检查端口、健康接口或最小业务请求。
  7. 记录结果:保留目标、制品、步骤状态、关键日志和验收结果。

多站点要统一流程,不是抹平差异

通用的七个步骤可以做成同一份模板,安装路径、服务名和验收地址等差异则作为站点参数。执行时一次准备制品,选择目标站点,各站点按自己的参数执行,最后统一查看结果。

一个已脱敏的生产案例已经在多个 Linux 站点上更新多个 WAR/JAR。原来需要分别登录并重复上传,后来改为在控制面准备一次,由站点 Agent 按计划执行并回传结果。实际节省的时间受制品大小、网络条件和站点数量影响,本文不承诺固定提效比例。

相关阅读:多服务器发布前检查清单 · Spring Boot 多服务器的环境差异

如果你已经有一条稳定的单机发布流程,可以下载发布助手体验版,先把它做成一份可复用模板。

重复的现场操作,一次定义,多站点执行