Windows Server部署Vue3+Spring Boot项目 - 实践

news/2025/10/5 22:13:41/文章来源:https://www.cnblogs.com/ljbguanli/p/19127103

Windows Server部署Vue3+Spring Boot项目 - 实践

在Windows Server 上部署Vue3 + Spring Boot前后端分离项目的详细步骤如下:


一、环境准备

  1. 安装JDK 17+

  2. 安装Node.js

  3. 安装Nginx


二、后端部署(Spring Boot)

  1. 打包项目

    bash

    复制

    下载

    # 在Spring Boot项目根目录执行
    mvn clean package -DskipTests
    • 生成 target/项目名.jar(如 myapp-0.0.1-SNAPSHOT.jar

  2. 上传文件到服务器

    • 将JAR包放到服务器目录(如 C:\app\backend

  3. 启动Spring Boot

    bash

    复制

    下载

    java -jar C:\app\backend\myapp-0.0.1-SNAPSHOT.jar
    • 后台运行(推荐使用批处理):

      batch

      复制

      下载

      @echo off
      start javaw -jar C:\app\backend\myapp-0.0.1-SNAPSHOT.jar
      exit

      保存为 run-backend.bat 并双击运行。

  4. 验证后端

    • 访问 http://localhost:8080/api/test(按实际API路径)


三、前端部署(Vue3)

  1. 打包项目

    bash

    复制

    下载

    npm run build
    • 生成 dist 文件夹(包含静态文件)

  2. 上传文件到服务器

    • 将 dist 文件夹内容放到Nginx目录(如 C:\nginx\html\frontend

  3. 配置Nginx反向代理

    • 编辑 C:\nginx\conf\nginx.conf

      nginx

      复制

      下载

      server {listen       80;server_name  your-domain.com; # 替换为域名或IP# 前端静态资源location / {root   html/frontend;index  index.html;try_files $uri $uri/ /index.html; # 支持Vue Router history模式}# 后端API代理location /api {proxy_pass http://localhost:8080;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}
      }
  4. 启动Nginx

    bash

    复制

    下载

    # 命令行进入nginx目录
    start nginx

四、防火墙配置

  1. 开放端口(管理员PowerShell):

    powershell

    复制

    下载

    New-NetFirewallRule -DisplayName "Allow HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
    New-NetFirewallRule -DisplayName "Allow Spring Boot" -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow

五、设置开机自启动

  1. Spring Boot

    • 创建批处理文件 start-backend.bat(内容同上)

    • 将快捷方式放入启动文件夹:

      复制

      下载

      C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
  2. Nginx

    • 创建批处理文件 start-nginx.bat

      batch

      复制

      下载

      @echo off
      C:\nginx\nginx.exe
    • 同样将快捷方式放入启动文件夹。


六、验证部署

  1. 访问前端页面:

    复制

    下载

    http://服务器IP或域名/
  2. 检查API请求:

    • 前端页面调用 /api/xxx 应正常返回后端数据


常见问题解决

  1. 端口冲突

  2. Nginx代理404

  3. 静态资源加载失败


关键提示

通过以上步骤,即可完成全栈项目在Windows Server 的部署。

在同一台Windows Server 服务器上完全可以同时运行多个JAR包。这是企业级部署的常见场景(如微服务架构)。以下是具体实现方法和注意事项:


✅ 关键实现步骤

1. 端口分配

为每个JAR分配不同端口(避免冲突):

  • 修改Spring Boot的 application.properties

    properties

    复制

    下载

    # 应用1
    server.port=8080
    # 应用2
    server.port=8081
  • 或启动时指定端口:

    bash

    复制

    下载

    java -jar app1.jar --server.port=8080
    java -jar app2.jar --server.port=8081
2. 独立目录部署

为每个应用创建独立目录:

复制

下载

C:\apps
├─app1
│   ├─app1.jar
│   └─config/  # 配置文件
├─app2
│   ├─app2.jar
│   └─config/
3. 批处理脚本启动

创建多个启动脚本(如 start-app1.batstart-app2.bat):

batch

复制

下载

:: start-app1.bat
@echo off
cd /d C:\apps\app1
start javaw -Xmx512m -jar app1.jar --spring.config.location=config/application.properties
exit

关键参数

  • javaw:无控制台窗口的后台运行

  • -Xmx512m:限制内存用量

  • --spring.config.location:指定配置文件路径

4. Nginx反向代理配置

统一入口转发到不同应用:

nginx

复制

下载

server {listen 80;# 应用1代理location /app1 {proxy_pass http://localhost:8080;proxy_set_header Host $host;}# 应用2代理location /app2 {proxy_pass http://localhost:8081;proxy_set_header Host $host;}
}

⚠️ 注意事项

1. 资源监控
  • 检查服务器资源占用:

    powershell

    复制

    下载

    # 查看内存/CPU使用
    Get-Process javaw | Format-Table Name, CPU, WorkingSet
  • 建议配置JVM内存限制(避免OOM):

    bash

    复制

    下载

    java -Xms256m -Xmx1024m -jar app.jar
2. 进程管理
  • 查看所有Java进程

    bash

    复制

    下载

    tasklist | findstr "javaw"
  • 停止特定应用

    bash

    复制

    下载

    taskkill /PID  /F
3. 日志分离

为每个应用配置独立日志文件:

properties

复制

下载

# application.properties
logging.file.name=logs/app1.log
4. 服务化部署(推荐)

使用 NSSM 将每个JAR注册为Windows服务:

  1. 下载 nssm.exe

  2. 创建服务:

    powershell

    复制

    下载

    # 注册应用1服务
    nssm install App1_Service "C:\Program Files\Java\jdk-17\bin\java.exe"
    nssm set App1_Service AppParameters "-jar C:\apps\app1\app1.jar"
    nssm set App1_Service AppDirectory "C:\apps\app1"
    # 启动服务
    nssm start App1_Service
    • 服务管理:services.msc


? 资源分配建议

应用规模JVM堆内存建议最大并发应用数
小型应用512MB4~6个
中型应用1-2GB2~3个
大型应用4GB+1个(独占服务器)

经验值:预留至少1GB内存给操作系统和Nginx


? 故障排查技巧

  1. 端口冲突

    powershell

    复制

    下载

    netstat -ano | findstr ":8080"
  2. 查看特定应用日志

    bash

    复制

    下载

    tail -f C:\apps\app1\logs\application.log
  3. 内存泄漏检测

    bash

    复制

    下载

    jcmd  GC.heap_info

通过以上方案,您可以稳定运行多个Spring Boot应用。对于生产环境,建议:

  1. 使用 Docker容器化部署(需Windows Server 2016+)

  2. 配置 APM监控(如SkyWalking)

  3. 重要服务配置 集群高可用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/928788.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF ContentControl Content Binding

Install-Package Microsoft.Extensions.DependencyInjection; Install-Package CommunityToolkit.mvvm; <Window x:Class="WpfApp25.Views.MainWin"xmlns="http://schemas.microsoft.com/winfx/2006…

做网站什么程序好东莞互联网公司排名

ArcGIS Pro SDK &#xff08;九&#xff09;几何 3 点 文章目录 ArcGIS Pro SDK &#xff08;九&#xff09;几何 3 点1 构造地图点2 地图点生成器属性3 地图点的相等性4 缩放至指定点 环境&#xff1a;Visual Studio 2022 .NET6 ArcGIS Pro SDK 3.0 1 构造地图点 // 使用生…

南京专业做网站公司地址查公司信息在哪里查

分布式架构中实现全局唯一ID的需求非常常见,业界上也有很多的工具可直接使用。以下总结一下在面试过程中被问到如何使用Redis 实现分布式全局唯一ID的问题 自定义全局唯一ID生成器 @Component public class RedisIdWorker {/*** 开始时间戳*/private static final long BEGIN…

男女生做恶心的网站网站后期维护管理

本帖最后由 神经病的春天 于 2014-9-18 15:36 编辑近来升级了一下主机&#xff0c;这样一来&#xff0c;终于能够拥有USB3.0和SATA3.0接口了&#xff0c;不过本人目前还木有SSD&#xff0c;所以尚无法完全发挥出这些接口的速度优势。 为了测试&#xff0c;上周的时候&#xff0…

学校网站建设责任书衡阳seo网站推广

1. DBoW3库介绍 DBoW3是DBoW2的增强版&#xff0c;这是一个开源的C库&#xff0c;用于给图像特征排序&#xff0c;并将图像转化成视觉词袋表示。它采用层级树状结构将相近的图像特征在物理存储上聚集在一起&#xff0c;创建一个视觉词典。DBoW3还生成一个图像数据库&#xff0c…

To PXS -- Words to be remembered 2025.10.5

To PXS Despite the great distance between us, our hearts still unite as one. The powerful bond of friendship between us will never fade but endure. Looking back at the days and nights we shared togethe…

网站截图怎么做做网站要收订金吗

为了精准、稳定地提取滚动轴承故障特征&#xff0c;提出了基于变分模态分解和奇异值分解的特征提取方法&#xff0c;采用标准模糊C均值聚类(fuzzy C means clustering, FCM)进行故障识 别。对同一负荷下的已知故障信号进行变分模态分解&#xff0c;利用 奇异值分解技术进一步提…

⭐ Unity AVProVideo插件自带播放器 脚本重构 实现视频激活重置功能 - 实践

⭐ Unity AVProVideo插件自带播放器 脚本重构 实现视频激活重置功能 - 实践2025-10-05 21:56 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x:…

dede网站打开慢做采集网站赚钱

旧项目用的 vue3-seamless-scroll 怎么写都不生效&#xff0c;一看源码两年没更新了&#xff0c;不想调试&#xff0c;还是自己写吧&#xff0c;再不济问问GPT都会更快一点 scroll.vue <template><div class"scroll-container" ref"scrollContainerR…

网站做视频的软件营销型网站哪家好

课程背景 2023年&#xff0c;以ChatGPT为代表的接近人类水平的对话机器人&#xff0c;AIGC不断刷爆网络&#xff0c;其强大的内容生成能力给人们带来了巨大的震撼。学术界和产业界也都形成共识&#xff1a;AIGC绝非昙花一现&#xff0c;其底层技术和产业生态已经形成了新的格局…

做损坏文档的网站seo搜索引擎推广

更新Milvus各个组件的配置参数。 调试 您可以在OpenAPI Explorer中直接运行该接口&#xff0c;免去您计算签名的困扰。运行成功后&#xff0c;OpenAPI Explorer可以自动生成SDK代码示例。 ​编辑调试 授权信息 下表是API对应的授权信息&#xff0c;可以在RAM权限策略语句的…

做网站怎么选服务器军队采购网

java中各map中是否可以存储null值情况

linux做网站服务器吗中企动力官网网站

‍ 侯建业 本文由是石科技CIO侯建业撰写并投递参与“数据猿年度金猿策划活动——2023大数据产业年度优秀CIO榜单及奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 是石科技&#xff08;江苏&#xff09;有限公司成立于2021年&#xff0c;由国家超级计算无锡中心与…

nodejs做网站的弊端网站备案中是什么意思

Title: 非线性最小二乘问题的数值方法 —— 从高斯-牛顿法到列文伯格-马夸尔特法 (I) 文章目录 前言I. 从高斯-牛顿法II. 到阻尼高斯-牛顿法III. 再到列文伯格-马夸尔特法1. 列文伯格-马夸尔特法的由来2. 列文伯格-马夸尔特法的说明说明一. 迭代方向说明二. 近似于带权重的梯度…

保险业网站建设想卖产品怎么推广宣传

要使用Python批量根据Excel数据绘制饼状图&#xff0c;可以使用pandas和matplotlib库来实现。以下是一个基本的代码示例&#xff1a; import pandas as pd import matplotlib.pyplot as plt # 读取Excel文件 data pd.read_excel(data.xlsx) # 提取需要用于绘制饼状图的数据列…

网站建设与服务技能实训心得体会采集网站如何收录

一、可继承的属性 1. 文本相关属性 color&#xff1a;文本的颜色。 font-family&#xff1a;字体系列。 font-size&#xff1a;文本的大小。 font-style&#xff1a;文本的样式。 line-height&#xff1a;行与行之间的垂直间距。 2. 列表相关属性 list-style-type&#xff1a;…

uboot 2020版本下gpio命令的使用

1.在uboot命令行中想要支持gpio的命令,需要打开如下宏CONFIG_CMD_GPIO=y2.选用gpio引脚,作为测试引脚 2.1 查看电路原理图,选用那种soc不和mcu连接的pin,这样可以避免mcu的干扰。 2.2 查看pinmux的配置文件pinmux.…

邢台建网站找谁广安做网站

需求&#xff1a; 创建A项目&#xff0c;有函数和类&#xff0c;将A项目生成DLL动态链接库 创建B项目&#xff0c;使用A项目生成的dll和lib相关文件 正常项目开发.h用于函数声明&#xff0c;.cpp用于函数实现&#xff0c;但是项目开发往往不喜欢将.cpp函数实现的代码发给别人&…

网站设计师简历wordpress分类目录模板

按住option之后&#xff0c;点击Enter就可以完成换行操作

网站推广怎么写牡丹江市西安区建设局网站

读 TCP 协议 RFC-793_rfc 793-CSDN博客TCP灌包中RTT时延与RTO超时关系 - konglingbin - 博客园 TCP的RTT算法 从前面的TCP重传机制我们知道Timeout的设置对于重传非常重要。 设长了&#xff0c;重发就慢&#xff0c;丢了老半天才重发&#xff0c;没有效率&#xff0c;性能差&…