🎯导读:本文档详述了基于前后端分离的若依系统(版本3.8.8)在Windows环境下从零开始的部署流程,包括JDK、Redis、MySQL等环境的搭建与配置。前端部署涉及Vue项目构建、图片优化及利用Nginx托管;而后端则涵盖Spring Boot应用的日志路径调整、配置文件修改与最终的jar包构建及运行。此外,文档还提供了服务器端口开放及防火墙设置的方法,确保部署的服务可被外部访问。本文旨在帮助开发者顺利完成项目的本地部署与测试。
文章目录
若依版本说明
本文演示版本为前后端分离单机版本,版本号为3.8.8(下载地址),如果其他版本部署方式略有不同也正常
环境安装
平时都用Linux部署项目,使用Docker安装环境巴适得很(现在不太巴适了,国内的镜像很多都被封了)。虽然Win也可以安装Docker,但是还要开启虚拟化,也挺麻烦的
JDK
教程太多了,随便找都可以用
Redis
【Win开发环境搭建】Redis与可视化工具详细安装与配置过程
MySQL
【Win开发环境搭建】MySQL8安装+重装的数据备份方法【提供MySQL8.0.27版本的压缩包】
RabbitMQ安装
RabbitMQ是我项目额外使用的,跑若依本身不需要安装
Nginx安装
Nginx的作用主要是用于挂载前端项目
因为服务器是win,所以下载win版本
部署过程
前端
前端部署会有一些小坑,建议跟着我的步骤来走
修改生产环境配置
把请求后端的ip
和端口
改成后端服务所部署的ip
和端口
处理找不到模块错误
如果不做下面的修改,访问非首页的其他页面,会出现cannot find module
错误
【修改方式】
修改如下两个文件
component: (resolve) => require(['@/views/system/user/authRole'],resolve),
return (resolve) => require([`@/views/${view}`], resolve)
图片压缩
若依系统自带的登录页背景图片大小是510KB(我这里换成其他的图片了,原图大小是3045KB),但是我的服务器的下载速度每秒最高只有128KB,假如使用这个图片,需要加载20多秒,用户的体验机及其差。其实图片不一定要分辨率那么高,只要看起来不模糊即可,为了优化用户的体验,需要对图片进行压缩。
经过使用压缩网站的压缩,图片大小变成552KB,但是还是需要花费4秒多的时间来加载,体验感还是不好。
最后使用PS进行进一步的压缩,把图片压缩到58KB,这样几百毫秒就可以成功加载
打包
点击按钮即可执行打包
当然也可以在终端执行命令npm run build:prod
来打包
出现Build complete,说明打包成功
打包成功之后生成如下文件
打包文件上传服务器nginx
在服务器中解压上面下载的Nginx压缩包
在html目录下面创建一个文件夹,名称你喜欢就行,建议使用项目的名称
将刚刚打包的文件丢上来
修改Nginx配置文件
location / {
root html/ipsFront;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
添加try_files $uri $uri/ /index.html;
是为了解决网页刷新报404的问题,如果不信,可以把这个删掉试一下
启动Nginx
在命令行中执行nginx.exe
即可,注意要先定位到nginx所在目录
如下方式可以快速在命令行中定位到当前目录
启动完nginx,前端就算部署完了,等开放了端口,就可以通过ip地址:81
访问前端页面了
后端
修改日志路径
项目一开始使用的是绝对路径,建议改成相对路径
后续运行之后,会自动在jar包同一层级创建一个logs文件夹来存储日志
修改配置文件
修改Redis、MySQL、RabbitMQ的连接ip和端口为服务器中间件的ip和端口。(建议创建dev、prod配置文件,来实现环境隔离,不用每次修改一堆配置)
执行打包
打包成功之后,生成如下jar,将该jar包放到服务器中运行即可
服务器运行jar
在相应目录运行如下命令启动程序
java -Xmx2048M -Xms2048M -jar ips-admin.jar
建议创建.bat
批处理文件,把上面的命令丢进去,后面就可以直接双击bat文件启动,更加方便
开放端口
本文所用服务器在腾讯云购买,需要在安全组中编辑规则来开放相关的端口
将前端和后端的端口开放出来,因为我中间件都安装在服务器本机,直接用localhost访问即可,不需要开放端口,开放端口也不安全(注意,尽量使用一些少见的端口,例如MySQL不用3306,用其他的,且服务一定要设置比较难的密码,不然很容易被破解攻击)
执行到这一步,可以试试你的前后端是否可以访问了,如果可以访问,万事大吉,退出本文即可(当然退出之前,点个赞,我会很开心,哈哈哈)
我这台服务器光有上面的操作,还无法真正开放端口,还需要进一步管理服务器的防火墙
开放和上面一样的端口