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' |
-Xms256m | JVM 初始堆内存 | 根据服务器内存调整,建议 256m ~ 512m |
-Xmx512m | JVM 最大堆内存 | 根据服务器内存调整,建议 512m ~ 2g |
angryant-biz-blank.jar | jar 包文件名 | 如重命名了 jar 包需同步修改 |
--spring.profiles.active=prod | Spring 环境配置 | 指定使用 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
- 从 nssm.cc 下载 NSSM
- 解压到任意目录(如
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.xml4GB 内存服务器
bat
java -Xms512m -Xmx2g -jar angryant-biz-blank.jar --spring.profiles.active=prod --logging.config=./logback-prod.xml8GB+ 内存服务器
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