Skip to content

Windows 服务器部署

本文档介绍在 Windows 服务器上部署 ANGRY ANT 应用的完整步骤。

适用环境

  • Windows Server 2016 / 2019 / 2022
  • Windows 10 / 11(开发测试环境)

部署步骤

第一步:构建打包

在开发机器上执行打包:

bash
cd angryant-biz-blank
mvn clean package

打包产物位于 target/output/ 目录,或直接使用 target/output.zip

第二步:准备 JDK 环境

bat
:: 验证 JDK 是否已安装
java -version

:: 应输出类似以下内容
:: java version "1.8.0_xxx"

如未安装 JDK,请前往 Adoptium 或 Oracle 官网下载 JDK 1.8 并配置 JAVA_HOME 环境变量。

第三步:上传文件

将整个 output/ 目录(或 output.zip 解压后的内容)上传到服务器部署目录,如 D:\app\your-project\

D:\app\your-project\
├── angryant-biz-blank.jar    # 应用 jar
├── lib\                      # 依赖 jar 包
├── application.yml           # 主配置
├── application-prod.yml      # 生产环境配置
├── logback-prod.xml          # 日志配置
├── run.bat                   # 启动脚本
├── info_log.sh               # 查看信息日志
├── error_log.sh              # 查看错误日志
└── readme                    # 简要说明

第四步:修改配置文件(重要)

4.1 修改 application-prod.yml

打开 application-prod.yml,修改以下关键配置:

yaml
# 服务端口
server:
  port: 8080                          # 改为实际端口

# 数据库连接
spring:
  datasource:
    druid:
      master:
        url: jdbc:mysql://ip地址:3306/数据库名称?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        username: 用户名               # 改为实际用户名
        password: 密码                 # 改为实际密码

# 文件上传路径(Windows 环境)
angryant:
  profile: D:/angryant/uploadPath/blank    # 改为实际上传路径

# OSS 配置(如使用 MinIO)
oss-v2:
  storage:
    type: minio
    minio:
      endpoint: http://your-minio-server:9000   # 改为实际 MinIO 地址
      access-key: your-access-key                # 改为实际密钥
      secret-key: your-secret-key                # 改为实际密钥

4.2 修改 logback-prod.xml

修改日志存储路径:

xml
<!-- 原始模板值(wj 为项目名称,需替换为你的实际项目名) -->
<property name="log.path" value="/home/angryant/logs/wj" />

<!-- 改为 Windows 实际路径 -->
<property name="log.path" value="D:/angryant/logs/your-project" />

修改后需要确保该目录存在,应用启动时会自动创建日志文件。

4.3 修改 run.bat

bat
title 'XXX项目名称-端口'
java -Xms256m -Xmx512m -jar angryant-biz-blank.jar --spring.profiles.active=prod --logging.config=./logback-prod.xml
pause
参数说明替换建议
title命令行窗口标题替换为项目名称和端口,如 title 'ANGRY-ANT-API-8080'
-Xms256mJVM 初始堆内存根据服务器内存调整,建议 256m ~ 512m
-Xmx512mJVM 最大堆内存根据服务器内存调整,建议 512m ~ 2g
angryant-biz-blank.jarjar 包文件名如重命名了 jar 包需同步修改
--spring.profiles.active=prodSpring 环境配置指定使用 application-prod.yml

第五步:启动服务

方式一:双击运行

直接双击 run.bat 文件即可启动。

方式二:命令行运行

bat
cd D:\app\your-project
run.bat

第六步:验证服务

bat
:: 检查端口是否监听(8080 为默认端口,请替换为你实际配置的端口)
netstat -ano | findstr 8080

:: 测试接口是否可用
curl http://localhost:8080

注册为 Windows 服务(推荐)

run.bat 默认前台运行,关闭窗口服务就会停止。生产环境建议使用 NSSM(Non-Sucking Service Manager)将应用注册为 Windows 服务。

安装 NSSM

  1. nssm.cc 下载 NSSM
  2. 解压到任意目录(如 C:\nssm\

注册服务

bat
:: 安装服务
nssm install AngryAntApp "D:\app\your-project\run.bat"

:: 设置服务描述
nssm set AngryAntApp Description "ANGRY ANT Application Service"

:: 设置工作目录
nssm set AngryAntApp AppDirectory "D:\app\your-project"

:: 设置日志输出
nssm set AngryAntApp AppStdout "D:\app\your-project\run_info.log"
nssm set AngryAntApp AppStderr "D:\app\your-project\run_error.log"

:: 设置日志轮转
nssm set AngryAntApp AppRotateFiles 1
nssm set AngryAntApp AppRotateBytes 10485760

管理服务

bat
nssm start AngryAntApp        :: 启动服务
nssm stop AngryAntApp         :: 停止服务
nssm restart AngryAntApp      :: 重启服务
nssm status AngryAntApp       :: 查看状态
nssm remove AngryAntApp confirm  :: 删除服务

JVM 参数调优

根据服务器配置调整 JVM 参数:

2GB 内存服务器

bat
java -Xms256m -Xmx1g -jar angryant-biz-blank.jar --spring.profiles.active=prod --logging.config=./logback-prod.xml

4GB 内存服务器

bat
java -Xms512m -Xmx2g -jar angryant-biz-blank.jar --spring.profiles.active=prod --logging.config=./logback-prod.xml

8GB+ 内存服务器

bat
java -Xms1g -Xmx4g -XX:+UseG1GC -jar angryant-biz-blank.jar --spring.profiles.active=prod --logging.config=./logback-prod.xml

生产环境 Nginx 配置

Windows 服务器同样可以使用 Nginx 作为反向代理。下载 Nginx for Windows 后,在 conf/nginx.conf 中添加以下配置:

nginx
server {
    listen 80;
    server_name your-domain.com;

    # 前端静态资源
    location / {
        root D:/app/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/

Nginx 常用命令

bat
:: 启动 Nginx
start nginx

:: 停止 Nginx
nginx -s stop

:: 重新加载配置
nginx -s reload

:: 检查配置语法
nginx -t

注意事项

  • run.bat 默认前台运行,关闭命令行窗口会停止服务,生产环境建议使用 NSSM 注册为服务
  • lib/ 目录必须和 jar 包在同一目录下,否则启动会报 ClassNotFoundException
  • 首次启动建议观察日志输出,确认无报错后再投入生产
  • 定期备份 jar 包和配置文件
bat
:: 开放防火墙端口(8080 为默认端口,请替换为你实际配置的端口)
netsh advfirewall firewall add rule name="ANGRY ANT API" dir=in action=allow protocol=TCP localport=8080

基于 MIT 许可发布.