部署概览
ANGRY ANT 采用 Spring Boot 单体架构,部署方式简单直接——打包后得到完整的部署包,上传服务器、修改配置、启动即可。本文档帮助你了解生产环境部署的整体流程与准备工作。
部署架构
mermaid
部署前准备清单
后端环境
| 组件 | 最低版本 | 推荐版本 | 说明 |
|---|---|---|---|
| JDK | 1.8 | 1.8(OpenJDK / Oracle JDK) | 项目基于 Java 8 编译 |
| MySQL | 5.7 | 8.0 | 业务数据存储 |
| Redis | 5.0 | 7.0 | 缓存、会话、分布式锁 |
| Maven | 3.5 | 3.8+ | 构建打包(构建机器使用,服务器不需要) |
前端环境
| 组件 | 最低版本 | 推荐版本 | 说明 |
|---|---|---|---|
| Node.js | 20.10.0 | 22.x LTS | 构建机器使用,服务器不需要 |
| pnpm | 9.12.0 | 10.x | 前端包管理器 |
可选组件
| 组件 | 用途 | 说明 |
|---|---|---|
| Nginx | 反向代理、静态资源托管、SSL | 生产环境推荐使用 |
| MinIO | 对象存储(本地部署方案) | 如果使用本地 OSS 需要 |
| NSSM | Windows 服务管理工具 | 将 jar 注册为 Windows 服务 |
部署方式选择
| 部署方式 | 适用场景 | 难度 | 推荐指数 |
|---|---|---|---|
| Windows 部署 | Windows Server、开发测试环境 | 低 | 适合快速验证 |
| Linux / 国产环境部署 | CentOS、Ubuntu、麒麟、统信等 | 中 | 生产环境推荐 |
| Docker 部署 | 容器化环境、CI/CD 流水线 | 中 | 适合有 DevOps 经验的团队 |
部署整体流程
mermaid
构建打包
后端打包
进入业务模块目录执行打包:
bash
# 进入业务模块(以 angryant-biz-blank 为例)
cd angryant-biz-blank
# Maven 打包(默认 druid profile,包含全部配置和脚本)
mvn clean package打包完成后,在 target/ 目录下生成:
target/
├── angryant-biz-blank.jar # 应用主 jar(轻量,约 39KB,依赖在 lib/ 中)
├── output.zip # ★ 完整部署包(assembly 打包产物)
└── output/ # 解压后的部署文件目录
├── angryant-biz-blank.jar
├── lib/ # 所有依赖 jar 包
├── application.yml # 主配置
├── application-prod.yml # 生产环境配置 ← 需要修改
├── logback-prod.xml # 日志配置 ← 需要修改
├── run.bat # Windows 启动脚本
├── run.sh # Linux 启动脚本
├── info_log.sh # 查看信息日志
├── error_log.sh # 查看错误日志
└── readme # 简要说明output 目录文件说明
| 文件/目录 | 说明 | 部署前是否需要修改 |
|---|---|---|
angryant-biz-blank.jar | 应用主 jar(轻量,依赖在 lib/) | 如重命名需同步修改 run.bat/run.sh |
lib/ | 所有依赖 jar 包 | 不需要 |
application.yml | 主配置文件 | 一般不需要 |
application-prod.yml | 生产环境配置 | 必须修改(数据库、Redis、端口、OSS 等) |
logback-prod.xml | 日志配置 | 必须修改(日志存储路径) |
run.bat | Windows 启动脚本 | 需要修改(窗口标题、jar 名称、JVM 参数) |
run.sh | Linux 启动脚本 | 需要修改(jar 名称、JVM 参数、日志路径、备份路径) |
info_log.sh | 查看信息日志快捷脚本 | 不需要 |
error_log.sh | 查看错误日志快捷脚本 | 不需要 |
前端打包
bash
# 进入前端项目目录
cd aant-vben-admin
# 安装依赖
pnpm install
# 构建生产版本
pnpm build
# 构建产物位于 apps/web-ele/dist/ 目录下部署前必须修改的配置
1. application-prod.yml(生产环境配置)
此文件包含数据库连接、Redis 连接、服务端口、OSS 等所有生产环境配置:
yaml
# ===== 必须修改的配置 =====
# 服务端口
server:
port: 8080 # 改为实际端口
# 数据库连接
spring:
datasource:
druid:
master:
url: jdbc:mysql://ip地址:3306/数据库名称?useUnicode=true&characterEncoding=utf8&...
username: 用户名 # 改为实际用户名
password: 密码 # 改为实际密码
# 文件上传路径
angryant:
profile: D:/angryant/uploadPath/blank # Windows
# profile: /home/java/your-project/uploadPath # Linux
# OSS 配置(如使用 MinIO)
oss-v2:
storage:
type: minio
minio:
endpoint: http://your-minio-server:9000
access-key: your-access-key
secret-key: your-secret-key2. logback-prod.xml(日志配置)
修改日志存储路径,使其指向实际部署目录:
xml
<!-- 当前模板值(wj 为项目名称,需替换为你的实际项目名) -->
<property name="log.path" value="/home/angryant/logs/wj" />
<!-- 改为实际部署路径 -->
<!-- Linux 示例 -->
<property name="log.path" value="/home/java/your-project/logs" />
<!-- Windows 示例 -->
<property name="log.path" value="D:/angryant/logs/your-project" />3. run.sh / run.bat(启动脚本)
- jar 名称:如重命名了 jar 包,需同步修改脚本中的引用
- JVM 参数:根据服务器内存调整
- 日志路径:确保与 logback-prod.xml 中的路径一致
详细修改说明请参考对应的部署文档:
生产环境目录规范
部署时将整个 output/ 目录上传到服务器,建议按以下结构组织:
/home/java/your-project/
├── angryant-xxx.jar # 应用 jar 包
├── lib/ # 依赖 jar 包目录
├── run.sh # 启动脚本(Linux)
├── run.bat # 启动脚本(Windows)
├── info_log.sh # 查看信息日志
├── error_log.sh # 查看错误日志
├── application.yml # 主配置
├── application-prod.yml # 生产环境配置(已修改)
├── logback-prod.xml # 日志配置(已修改)
├── run_info.log # 启动标准输出日志(自动生成)
├── run_error.log # 启动错误输出日志(自动生成)
├── backup/ # 备份目录
│ ├── 20250101(12:00:00).jar
│ └── 20250102(14:30:00).jar
└── logs/ # 应用日志目录(logback 输出)
├── sys-info.log
├── sys-error.log
└── sys-user.logNginx 反向代理配置参考
生产环境推荐使用 Nginx 作为反向代理。以下为标准配置:
nginx
server {
listen 80;
server_name your-domain.com;
# 前端静态资源
location / {
root /home/java/your-project/dist;
index index.html;
try_files $uri $uri/ /index.html;
}
# 管理端 API 代理(对应前端 .env.production 中的 VITE_GLOB_API_URL=/prod-api)
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080/;
}
# 移动端/开放 API 代理
location /api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080/api/;
}
# OSS 公开文件访问代理
location /ossV2/public/ {
proxy_pass http://localhost:8080;
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;
}
}注意:以上配置中
8080为后端默认端口,需与application-prod.yml中的server.port保持一致。如你在配置文件中修改了端口,请同步修改 Nginx 中的proxy_pass地址。
路径说明
| 路径 | 作用 | proxy_pass |
|---|---|---|
/ | 前端静态资源 | 指向 dist 目录 |
/prod-api/ | 管理端 API 代理 | http://localhost:8080/ |
/api/ | 移动端/开放 API 代理 | http://localhost:8080/api/ |
/ossV2/public/ | OSS 公开文件访问 | http://localhost:8080 |
前端环境变量对应关系
| 端 | 环境变量 | 值 | Nginx 路径 |
|---|---|---|---|
| 管理端 | VITE_GLOB_API_URL | /prod-api | /prod-api/ |
| 移动端 | API 地址 | /api | /api/ |
常见问题
部署过程中遇到问题?请查看 部署常见问题 页面。
