部署前先固定变量
上线前要明确 jar 路径、配置文件路径、Java 版本、端口、数据库地址、日志目录和启动用户。不要在服务器上临时手写一串 `nohup java -jar`,因为非登录 shell 经常拿不到 Java 的 PATH,重启后问题更隐蔽。
配置建议外置,敏感信息走环境变量或独立配置文件,不要写进仓库。数据库连接、JWT 密钥、上传目录、静态页输出目录都要区分本地和生产。
上线后的四类验证
进程
确认 jar 进程存在、端口监听正常、日志没有启动异常。
接口
访问健康接口和关键公开接口,验证 JSON 结构和中文编码。
代理
Nginx `/api` 是否转发到正确端口,Host 和路径是否一致。
常见坑
一是本地能连数据库,线上连不上,通常是防火墙、账号权限或连接地址写错。二是启动成功但接口 404,可能是 Nginx 代理路径和后端 context-path 不一致。三是日志没有输出,后续排查只能靠猜。四是重启脚本没有加载环境,导致手动运行正常、脚本运行失败。
建议把启动、停止、备份、回滚都脚本化。部署不是一次性动作,而是要能重复执行、能失败恢复、能让后来的人看懂。