Windows 部署 Vue + Spring Boot 项目指南

该文章已生成可运行项目,

环境准备

1. 系统要求

  • Windows Server 2012/2016/2019 或 Windows 10/11
  • 至少 4GB RAM(推荐 8GB+)
  • 至少 20GB 可用磁盘空间

2. 软件安装

Java 环境
# 下载并安装 JDK 17(LTS版本)
# 官方下载地址:https://www.oracle.com/java/technologies/downloads/
# 设置环境变量:
JAVA_HOME = C:\Program Files\Java\jdk-17.x.x
PATH = %JAVA_HOME%\bin;...
Node.js 环境
# 下载并安装 Node.js 16+ 和 npm
# 官方下载地址:https://nodejs.org/
# 验证安装:
node -v
npm -v
数据库(按需安装)
  • MySQL: https://dev.mysql.com/downloads/mysql/
  • PostgreSQL: https://www.postgresql.org/download/windows/
  • 或使用现有数据库服务器
Web 服务器(可选)
  • Nginx: https://nginx.org/en/download.html
  • Apache: https://httpd.apache.org/download.cgi

项目打包

1. 前端 Vue 项目打包

# 进入项目目录
cd frontend-project

# 安装依赖
npm install

# 生产环境打包
npm run build

# 打包后文件在 dist/ 目录下

2. 后端 Spring Boot 项目打包

# 进入项目目录
cd backend-project

# Maven 打包(跳过测试)
mvn clean package -DskipTests

# 打包后文件在 target/ 目录下,一般为 *.jar 文件

部署配置

1. 前端部署

使用 Nginx 部署(推荐)
  1. dist 目录内容复制到 Nginx 的 html 目录
  2. 配置 Nginx (conf/nginx.conf):
server {
    listen       80;
    server_name  your-domain.com;
    
    location / {
        root   html;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html;
    }
    
    # 代理 API 请求到后端
    location /api/ {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}
直接部署(不使用 Web 服务器)
  • 可将 dist 目录内容直接放在后端项目的 static 目录中,由 Spring Boot 服务静态资源

2. 后端部署

运行 Jar 包
# 直接运行(前台运行)
java -jar your-application.jar

# 后台运行(使用批处理文件)
# 创建 run.bat 文件内容:
@echo off
java -jar your-application.jar > app.log 2>&1
echo %date% %time%: Application started >> service.log

# 如需配置启动参数,可添加:
java -Xms256m -Xmx1024m -jar your-application.jar --spring.profiles.active=prod
作为 Windows 服务运行(推荐)
  1. 使用 WinSW 工具
  2. 下载 WinSW 工具,重命名为 myapp.exe
  3. 创建同名 XML 配置文件 myapp.xml:
<service>
    <id>myapp</id>
    <name>My Application</name>
    <description>My Spring Boot Application</description>
    <executable>java</executable>
    <arguments>-jar "C:\app\your-application.jar"</arguments>
    <logmode>rotate</logmode>
</service>
  1. 安装服务:
myapp.exe install
myapp.exe start

防火墙配置

开放端口

# 开放 80 端口(HTTP)
netsh advfirewall firewall add rule name="HTTP" dir=in action=allow protocol=TCP localport=80

# 开放 443 端口(HTTPS)
netsh advfirewall firewall add rule name="HTTPS" dir=in action=allow protocol=TCP localport=443

# 开放后端应用端口(如 8080)
netsh advfirewall firewall add rule name="App8080" dir=in action=allow protocol=TCP localport=8080

# 查看已开放端口
netsh advfirewall firewall show rule name=all

关闭端口(如需)

netsh advfirewall firewall delete rule name="HTTP"

数据库配置

1. 创建生产数据库

CREATE DATABASE app_prod;
CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'secure_password';
GRANT ALL PRIVILEGES ON app_prod.* TO 'app_user'@'localhost';
FLUSH PRIVILEGES;

2. 应用数据库配置

application-prod.properties 中配置:

spring.datasource.url=jdbc:mysql://localhost:3306/app_prod
spring.datasource.username=app_user
spring.datasource.password=secure_password
spring.jpa.hibernate.ddl-auto=update

日志配置

1. 后端日志

application-prod.properties 中配置:

logging.file.path=./logs
logging.file.name=app.log
logging.level.com.yourpackage=INFO

2. 前端日志

  • 使用浏览器开发者工具查看前端错误
  • 可集成 Sentry 或其他前端监控工具

安全配置

1. 使用 HTTPS(推荐)

  1. 申请 SSL 证书(可使用 Let’s Encrypt)
  2. 配置 Nginx 或 Spring Boot 使用 HTTPS

2. 禁用不必要的服务

  • 关闭未使用的端口和服务
  • 定期更新系统和软件

自动化脚本示例

部署脚本 deploy.bat

@echo off
echo Starting deployment...

REM 停止服务
net stop myapp

REM 备份旧版本
xcopy /Y "C:\app\your-application.jar" "C:\backup\your-application-%date:~0,4%-%date:~5,2%-%date:~8,2%.jar"

REM 复制新版本
xcopy /Y "target\your-application.jar" "C:\app\"

REM 启动服务
net start myapp

echo Deployment completed at %date% %time%

监控与维护

1. 进程监控

  • 使用 Windows 任务管理器
  • 使用 netstat -ano 查看端口占用

2. 日志监控

  • 定期检查应用日志
  • 设置日志轮转,避免磁盘空间不足

3. 定期备份

  • 备份数据库:使用 mysqldump 或数据库管理工具
  • 备份应用和配置文件

故障排除

常见问题

  1. 端口占用:使用 netstat -ano | findstr :8080 查找占用进程
  2. 内存不足:调整 JVM 参数 -Xms-Xmx
  3. 权限问题:确保服务账户有足够权限访问所需资源

日志查看

# 查看应用日志
tail -f logs/app.log

# 查看 Windows 事件日志
eventvwr.msc
本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值