Windows Server 2022部署SpringBoot+Vue全流程指南
1. Windows Server 2022部署前后端项目概述最近接手了一个企业级应用系统的部署任务客户要求将SpringBootVue前后端分离项目部署到Windows Server 2022环境。这种部署场景在企业内部系统中非常常见特别是那些历史遗留系统较多、运维团队对Windows更熟悉的传统行业客户。与Linux部署相比Windows环境有其独特的配置方式和注意事项。在Windows Server上部署前后端分离项目主要涉及以下几个核心组件IIS作为Web服务器托管前端静态资源Java运行环境(JRE/JDK)运行后端服务数据库服务(MySQL/SQL Server等)可能的中间件如Redis、消息队列等2. 环境准备与基础配置2.1 Windows Server 2022初始配置新安装的Windows Server 2022默认是最小化安装我们需要先进行基础环境配置启用GUI管理工具如果安装的是Server Core版本Install-WindowsFeature Server-Gui-Mgmt-Infra,Server-Gui-Shell -Restart安装.NET Framework 4.8Install-WindowsFeature NET-Framework-45-Core配置系统防火墙New-NetFirewallRule -DisplayName Allow HTTP -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow New-NetFirewallRule -DisplayName Allow HTTPS -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow注意生产环境建议只开放必要的端口并根据实际需求调整防火墙规则。2.2 IIS安装与配置IIS是Windows平台最常用的Web服务器安装步骤如下通过服务器管理器添加角色和功能Install-WindowsFeature Web-Server,Web-ASP,Web-Asp-Net45,Web-Mgmt-Console -IncludeManagementTools安装URL重写模块用于前端路由 从Microsoft官网下载并安装URL Rewrite模块配置应用程序池为前端应用创建专用应用程序池设置.NET CLR版本为无托管代码将托管管道模式设为集成3. 前端项目部署3.1 Vue项目构建与发布在开发环境构建生产版本npm run build将生成的dist文件夹内容复制到服务器上的发布目录如C:\wwwroot\frontendIIS中配置网站物理路径指向发布目录绑定域名和端口设置默认文档为index.html配置URL重写规则解决前端路由404问题rule nameHandle History Mode stopProcessingtrue match url.* / conditions logicalGroupingMatchAll add input{REQUEST_FILENAME} matchTypeIsFile negatetrue / add input{REQUEST_FILENAME} matchTypeIsDirectory negatetrue / /conditions action typeRewrite url/ / /rule3.2 静态资源优化配置启用静态内容压缩Enable-WindowsOptionalFeature -Online -FeatureName IIS-HttpCompressionStatic配置客户端缓存 在web.config中添加staticContent clientCache cacheControlModeUseMaxAge cacheControlMaxAge30.00:00:00 / /staticContent4. 后端服务部署4.1 Java环境配置安装JDK 11推荐使用AdoptOpenJDKchoco install adoptopenjdk11 -y配置环境变量[Environment]::SetEnvironmentVariable(JAVA_HOME, C:\Program Files\AdoptOpenJDK\jdk-11.0.11.9-hotspot, Machine)验证安装java -version4.2 SpringBoot应用部署打包应用mvn clean package -DskipTests将生成的jar文件复制到服务器如C:\wwwroot\backend创建Windows服务推荐使用NSSMnssm install MyBackendService C:\Program Files\AdoptOpenJDK\jdk-11.0.11.9-hotspot\bin\java.exe -jar C:\wwwroot\backend\myapp.jar配置服务自动重启nssm set MyBackendService AppRestartDelay 50004.3 数据库连接配置在application.properties中配置生产环境数据库连接spring.datasource.urljdbc:sqlserver://localhost:1433;databaseNamemydb spring.datasource.usernamesa spring.datasource.passwordyourStrongPassword加密敏感配置推荐使用Jasyptspring.datasource.passwordENC(加密后的密码)5. 前后端联调与优化5.1 跨域问题解决后端配置CORSSpringBoot示例Configuration public class CorsConfig implements WebMvcConfigurer { Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping(/api/**) .allowedOrigins(https://yourdomain.com) .allowedMethods(GET, POST, PUT, DELETE) .allowCredentials(true); } }前端axios配置axios.defaults.withCredentials true5.2 性能优化建议前端启用Gzip压缩使用CDN分发静态资源实现懒加载路由后端配置JVM参数Xms/Xmx启用响应压缩server.compression.enabledtrue数据库优化索引配置连接池参数spring.datasource.hikari.maximum-pool-size206. 监控与维护6.1 基础监控配置配置Windows性能监控关键指标CPU、内存、磁盘I/O、网络使用Performance Monitor创建数据收集器集应用健康检查SpringBoot Actuator配置management.endpoints.web.exposure.includehealth,info,metrics management.endpoint.health.show-detailsalways6.2 日志管理方案统一日志配置RollingFile nameFileAppender fileNamelogs/app.log filePatternlogs/app-%d{yyyy-MM-dd}-%i.log PatternLayout pattern%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n/ Policies TimeBasedTriggeringPolicy interval1 modulatetrue/ SizeBasedTriggeringPolicy size100 MB/ /Policies /RollingFile日志集中收集可选ELK方案安装Filebeat收集日志配置Logstash解析规则Kibana可视化展示7. 安全加固措施7.1 基础安全配置SSL证书配置申请正规CA证书在IIS中绑定HTTPS配置HTTP强制跳转HTTPS账户安全# 禁用默认Administrator账户 Rename-LocalUser -Name Administrator -NewName CustomAdmin # 配置密码策略 secedit /export /cfg secpolicy.inf # 修改文件后应用 secedit /configure /db secedit.sdb /cfg secpolicy.inf7.2 应用层安全SpringSecurity配置Configuration EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { Override protected void configure(HttpSecurity http) throws Exception { http.csrf().disable() .authorizeRequests() .antMatchers(/api/public/**).permitAll() .anyRequest().authenticated() .and() .sessionManagement() .sessionCreationPolicy(SessionCreationPolicy.STATELESS); } }定期漏洞扫描使用Nessus等工具进行扫描关注Windows Update推送的安全补丁8. 自动化部署方案8.1 基础脚本自动化部署脚本示例deploy.ps1param( [string]$frontendPath, [string]$backendPath ) # 停止现有服务 Stop-Service -Name MyBackendService -ErrorAction SilentlyContinue # 清理旧文件 Remove-Item -Path C:\wwwroot\frontend\* -Recurse -Force Remove-Item -Path C:\wwwroot\backend\* -Recurse -Force # 复制新文件 Copy-Item -Path $frontendPath\* -Destination C:\wwwroot\frontend\ -Recurse Copy-Item -Path $backendPath\*.jar -Destination C:\wwwroot\backend\ # 重启服务 Start-Service -Name MyBackendService8.2 CI/CD集成可选Jenkins配置示例设置Windows节点配置Pipeline脚本pipeline { agent any stages { stage(Build Frontend) { steps { bat npm install bat npm run build } } stage(Build Backend) { steps { bat mvn clean package -DskipTests } } stage(Deploy) { steps { powershell C:\scripts\deploy.ps1 -frontendPath ./dist -backendPath ./target } } } }在实际部署过程中我发现Windows Server环境对文件路径大小写不敏感这可能导致从Linux开发环境迁移过来时出现资源加载问题。建议在开发阶段就统一使用小写文件名避免部署时出现问题。另外IIS的应用程序池回收设置需要根据实际负载调整默认设置可能不适合高并发场景。

相关新闻

AI 日程管理怎么选:Motion、Reclaim,以及 Clockwise 停服后的迁移提醒

AI 日程管理怎么选:Motion、Reclaim,以及 Clockwise 停服后的迁移提醒

工作评测专栏|更新于 2026 年 7 月 19 日|适合:个人知识工作者、项目经理、行政人员与需要统一排期的团队自动排日程听起来很美:任务自己找到空档,会议自动避开冲突,日历终于不再像俄罗斯方块。 但 2026 年…

2026/10/19 13:33:50 阅读更多 →
Hi3863芯片开发指南:Wi-Fi 6与星闪双模IoT方案

Hi3863芯片开发指南:Wi-Fi 6与星闪双模IoT方案

1. Hi3863芯片初探:Wi-Fi 6与星闪双模IoT方案Hi3863V100系列是海思推出的2.4GHz Wi-Fi 6星闪多模IoT SoC芯片,采用QFN40(5mm5mm)紧凑封装。其增强版Hi3863EV100特别集成了雷达人体活动检测功能,实测可识别6米范围内的人…

2026/10/15 23:55:30 阅读更多 →
独立开发者产品复盘:一个AI工具的从构想到放弃再到转型的全过程

独立开发者产品复盘:一个AI工具的从构想到放弃再到转型的全过程

独立开发者产品复盘:一个AI工具的从构想到放弃再到转型的全过程 一、最初的构想:一个AI周报生成工具 2024年11月,注意到一个高频场景:很多团队管理者抱怨写周报浪费时间。想法很简单——用AI把工作记录自动整理成周报。 MVP设计&a…

2026/10/20 13:23:46 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/21 9:32:40 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/21 9:32:40 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/21 9:32:40 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/21 9:32:40 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/21 9:32:40 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/21 9:31:32 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起:用户到底在追求什么“封号重开”这四个字,放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流,背后是大量的时间和精力成本。正常情况下,没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”,而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时,就意识到:单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/21 4:27:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →