Skip to content

部署概览

ANGRY ANT 采用 Spring Boot 单体架构,部署方式简单直接——打包后得到完整的部署包,上传服务器、修改配置、启动即可。本文档帮助你了解生产环境部署的整体流程与准备工作。

部署架构

mermaid

部署前准备清单

后端环境

组件最低版本推荐版本说明
JDK1.81.8(OpenJDK / Oracle JDK)项目基于 Java 8 编译
MySQL5.78.0业务数据存储
Redis5.07.0缓存、会话、分布式锁
Maven3.53.8+构建打包(构建机器使用,服务器不需要)

前端环境

组件最低版本推荐版本说明
Node.js20.10.022.x LTS构建机器使用,服务器不需要
pnpm9.12.010.x前端包管理器

可选组件

组件用途说明
Nginx反向代理、静态资源托管、SSL生产环境推荐使用
MinIO对象存储(本地部署方案)如果使用本地 OSS 需要
NSSMWindows 服务管理工具将 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.batWindows 启动脚本需要修改(窗口标题、jar 名称、JVM 参数)
run.shLinux 启动脚本需要修改(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-key

2. 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.log

Nginx 反向代理配置参考

生产环境推荐使用 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/

常见问题

部署过程中遇到问题?请查看 部署常见问题 页面。

基于 MIT 许可发布.