部署运维
当你准备把服务部署到测试/生产环境,并希望“可验证、可回滚、可运维”时,从这里开始。
本文聚焦 youlai-boot 的部署最短路径,你将完成:
- 启动依赖服务(MySQL/Redis/可选组件)
- 选择 Jar 或 Docker 方式部署
- 配置 Nginx 反向代理与 HTTPS
- 完成上线前 Checklist
依赖服务(推荐 Docker Compose)
仓库已提供 deploy/docker/docker-compose.yml(MySQL、Redis、MinIO、xxl-job-admin)。
bash
docker compose -f deploy/docker/docker-compose.yml -p youlai-boot up -d停止并清理:
bash
docker compose -f deploy/docker/docker-compose.yml -p youlai-boot downJar 部署
bash
mvn -DskipTests package
java -jar target/youlai-boot.jar --spring.profiles.active=prod常用验证:
- 文档:
http://localhost:8000/doc.html
Docker 镜像部署
bash
mvn -DskipTests package
docker build -t youlai-boot:latest .bash
docker run -d --name youlai-boot -p 8000:8000 -e SPRING_PROFILES_ACTIVE=prod youlai-boot:latest配置覆盖建议
- 生产环境优先用环境变量覆盖敏感项(DB/Redis 密码、AI Key 等)
- 按需关闭可选能力(AI/xxl-job/cache)
反向代理(Nginx)
生产环境通常建议把后端服务放在内网端口(如 8000),由 Nginx 统一对外提供:
- 域名
- HTTPS
- 反向代理
- 静态资源/前端站点托管(可选)
示例(按你的实际域名与证书路径调整):
nginx
server {
listen 80;
server_name api.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name api.example.com;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}HTTPS 与安全建议
- 证书建议使用自动化方案(如 ACME/Let's Encrypt)并定期续期
- 确保后端对外只暴露必要端口(一般仅 80/443)
- 生产环境禁用调试配置,关闭不必要的 actuator/管理端点(如果开启)
JVM 参数建议
JVM 参数应根据机器配置与访问量调整。示例(仅供参考):
bash
java \
-Xms512m -Xmx1024m \
-XX:+UseG1GC \
-Duser.timezone=Asia/Shanghai \
-jar target/youlai-boot.jar --spring.profiles.active=prod建议做法:
- 把 JVM 参数写入 systemd service 或容器启动参数
- 为不同环境准备不同的资源配置(开发/测试/生产)
日志与滚动
生产环境建议:
- 日志输出到文件(按项目日志配置为准)
- 配置日志滚动策略(按天/按大小)
- 通过日志平台或采集器集中收集(如 ELK / Loki 等)
数据备份与恢复
MySQL
备份(示例):
bash
mysqldump -u root -p --single-transaction --routines --triggers \
youlai_admin > youlai_admin_$(date +%F).sql恢复(示例):
bash
mysql -u root -p youlai_admin < youlai_admin_2026-01-01.sqlRedis
- 备份方式以你的 Redis 持久化方案为准(RDB/AOF)
- 生产环境建议开启持久化,并把数据目录纳入备份策略
监控与健康检查
建议至少具备:
- 存活检查:服务进程是否存活
- 接口可用性:关键接口是否 200(如
/doc.html或健康检查端点) - 依赖检查:MySQL/Redis 是否可用
- 资源监控:CPU、内存、磁盘、GC
如果项目启用了 Spring Boot Actuator,可结合 Prometheus/Grafana 做指标采集(以项目实际配置为准)。
上线 Checklist
- [ ]
application-prod.yml已配置并校验(DB/Redis/对象存储等) - [ ] 敏感配置已用环境变量或安全配置中心注入
- [ ] 数据库已初始化并执行必要的变更脚本
- [ ] Redis 已部署并开启持久化(生产建议)
- [ ] Nginx 反向代理与 HTTPS 证书已生效
- [ ] JVM 参数与容器资源限制已配置
- [ ] 日志滚动与日志采集策略已确认
- [ ] 备份策略已验证(至少做一次备份+恢复演练)
- [ ] 监控与告警已接入
