SpringBoot前后端分离项目,打包、部署到服务器详细图文流程

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
日志服务 SLS,月写入数据量 50GB 1个月
简介: SpringBoot前后端分离项目,打包、部署到服务器详细图文流程

文章目录

实施步骤

一、修改配置文件地址

1.修改MySQL配置

修改MySQL地址,修改需要部署的数据名,账号和密码


ca7b4fb314d24d93a458bf9728616e23.png

2.修改Redis配置

修改Redis地址,修改需要部署的Redis密码(如果需要的话)


82985bb202aa4e66a860f8ab72372329.png

3.修改日志路径和字符集配置

修改logback.xml中日志的保存地址

f071fa929c62435fa26d3aa60c33071e.png


重新设置日志字符集(防止放到服务器上去之后日志出现乱码)


6bd411cc2c8a42a092fa029b364b70ac.png

7d976089ac7f43fd8519d1ac73facf1e.png

二、将源码压缩并上传服务器

1.上传前端文件

提前在本地将完整的源码文件,压缩成.zip格式

在服务器上创建存放项目源码的文件夹(/workspace)

通过xftp工具将打包好的前端项目源码上传到服务器对应文件夹下

使用命令unzip ruoyi-ui.zip来解压项目源码

使用命令rm -rf ruoyi-ui.zip删除原来的压缩文件

使用命令cd ruoyi-ui/进入源码文件夹

2.上传后端文件(同上)

三、前端项目打包

1.安装依赖

使用命令cd ruoyi-ui/进入源码文件夹

npm install --unsafe-perm --registry=https://registry.npm.taobao.org安装前端项目依赖(服务器必须安装node.js)

--unsafe-perm 防止权限问题

--registry=https://registry.npm.taobao.org 淘宝镜像源,国内速度更快

2.项目打包

使用命令npm run build:prod

打包完成后会生成一个dist目录(默认目录名为dist)

98ba568175d5481c9a120ce7af9fc042.png

四、后端项目打包

1.项目打包(jar包)

使用命令mvn package(需要服务器安装maven环境)

使用命令cd target/进入到目录就能看到打好的jar包(这里的jar包是ruoyi.jar)

将jar包拷贝到上级目录,防止target目录清理导致jar包丢失

2.项目打包(war包)

修改pom文件

eb8b5cd9a0f9487abafc7ad5c87923d3.png


排除掉自带的Tomcat,这样才能部署到外置的tomcat

7bba5a09e9774a4c8528419df2ebda80.png


新增一个启动类,指向原有的启动类


051cf4547d7e448888eaf913ed701ddb.png

将修改后的两个文件上传到服务器(上传对应文件并替换即可)


使用命令mvn clean清理目录


使用命令mvn package打war包


使用命令cd target在这个目录就找到了war包


五、部署前端项目

1.使用Nginx部署前端项目

使用命令cd /usr/local/nginx/进入到nginx的目录

49ff4e4d389948a293d0e30451cd06af.png


修改Nginx的配置文件(修改conf文件夹下的nginx.conf文件)


将location位置的root后面跟的路径修改为前端项目打包后的文件地址


61b554078227498ebc1c096f881ddca9.png

防止出现权限相关的问题,将文件开头的user修改为root


e4721272b6d44dd3b07765cc219e5ef9.png

使用命令cd sbin/进入到对应目录


使用命令./nginx启动nginx


此时就可以在浏览器输入对应的ip地址访问前端了


六、部署后端项目

1.部署jar包方式

在对应目录下使用命令nohup java -jar ruoyi.jar &后台运行后端项目


此时的前端项目可能会依然报错404,这是因为前端和后端的地址没有关联起来


重新在nginx.conf文件中配置代理

e17ff2826b38448895f4b3da4f4f8838.png


进入到nginx目录下重新加载一下nginx/usr/local/nginx/sbin/nginx -s reload


此时重新访问前端项目,已经不会报错了


恭喜你项目部署完成!


2.部署war包方式

ps -aux | grep java查看当前java进程

kill -9 进程号关掉进程

定位到tomcat的文件夹下cd /usr/local/tomcat/

将刚才打包好的war包放到webapps这个目录下

cd webapps/后执行命令cp /root/workspace/ruoyi/ruoyi.war ./将war包拷贝到当前目录下

启动tomcatservice tomcat start

此时会有一个问题,直接访问ip打开的是tomcat的主页,需要在原有的地址后加上/ruoyi才能访问到后端

解决这个问题需要修改tomcat的配置,定位到tomcat文件夹下的conf目录中,找到server.xml

新增一条配置信息,将原来的访问方式改为根目录访问

3d2d65683be34e0293292f53f9be6a1d.png

将tomcat停掉service tomcat stop 再重新启动service tomcat start

3.配置集群

修改nginx.conf文件

c14f065bd91f48fc988cc86291f75ea0.png


修改代理转发配置为上面修改的upstream


9513eff7821740ed8ae6d2b38ff5fbeb.png

重启一下nginx/usr/local/nginx/sbin/nginx -s reload


实时监测一下日志,看现在访问的是哪个后端tail -f 日志文件名


部署注意事项

前端页面非首页部分刷新的时候,页面404问题

修改nginx配置文件,将以下代码放入nginx中

location / {
    ……
    try_files $uri $uri/ /index.html; ---解决页面刷新404问题
}

参考文章:https://www.jb51.net/article/261803.htm


部署后端项目启动失败

查看是不是后端项目的端口号被占用了

netstat -anp | grep 端口号


节省服务器空间

前端和后端的项目打包都可以在本地完成,上传服务器可以最小化上传jar包和dist文件夹,这种方式最节省服务器空间资源


后端项目只保留jar包即可

前端项目只保留dist文件夹即可


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
4天前
|
域名解析 弹性计算 安全
阿里云服务器租用、注册域名、备案及域名解析完整流程参考(图文教程)
对于很多初次建站的用户来说,选购云服务器和注册应及备案和域名解析步骤必须了解的,目前轻量云服务器2核2G68元一年,2核4G4M服务器298元一年,域名注册方面,阿里云推出域名1元购买活动,新用户注册com和cn域名2年首年仅需0元,xyz和top等域名首年仅需1元。对于建站的用户来说,购买完云服务器并注册好域名之后,下一步还需要操作备案和域名绑定。本文为大家展示阿里云服务器的购买流程,域名注册、绑定以及备案的完整流程,全文以图文教程形式为大家展示具体细节及注意事项,以供新手用户参考。
|
17天前
|
SQL 弹性计算 安全
阿里云服务器产品详情介绍:云服务器是什么、应用场景、租用流程、使用教程参考
对于很多新手用户来说,阿里云服务器是什么、阿里云服务器可以干嘛、阿里云服务器租用价格表、阿里云服务器新手教程是很多用户对于阿里云服务器最为关心的问题。同时,面对琳琅满目的服务器配置和优惠活动,如何选择最适合自己的服务器并充分利用其资源,成为许多用户面临的难题。本文将从阿里云服务器的定义、应用场景、价格、租用流程以及使用技巧等方面进行全面解析,帮助用户更好地了解和应用阿里云服务器。
|
18天前
|
开发框架 .NET PHP
网站应用项目如何选择阿里云服务器实例规格+内存+CPU+带宽+操作系统等配置
对于使用阿里云服务器的搭建网站的用户来说,面对众多可选的实例规格和配置选项,我们应该如何做出最佳选择,以最大化业务效益并控制成本,成为大家比较关注的问题,如果实例、内存、CPU、带宽等配置选择不合适,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文将详细解析企业在搭建网站应用项目时选购阿里云服务器应考虑的一些因素,以供参考。
|
26天前
|
监控 IDE Java
如何在无需重新启动服务器的情况下在 Spring Boot 上重新加载我的更改?
如何在无需重新启动服务器的情况下在 Spring Boot 上重新加载我的更改?
45 8
|
1月前
|
弹性计算 安全 网络安全
阿里云服务器四种常见购买方式适用对象与购买流程参考
阿里云服务器有多种购买方式,不同的方式适合对象与购买流程不一样,常见的购买方式有自定义购买、一键购买、云市场购买和通过活动购买四种方式。本文为大家介绍这四种方式的区别、适合对象以及详细的流程,以供参考和选择。
|
1月前
|
分布式计算 关系型数据库 MySQL
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型 图像处理 光通信 分布式计算 算法语言 信息技术 计算机应用
55 8
|
1月前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
42 2
|
16天前
|
存储 Oracle 安全
服务器数据恢复—LINUX系统删除/格式化的数据恢复流程
Linux操作系统是世界上流行的操作系统之一,被广泛用于服务器、个人电脑、移动设备和嵌入式系统。Linux系统下数据被误删除或者误格式化的问题非常普遍。下面北亚企安数据恢复工程师简单聊一下基于linux的文件系统(EXT2/EXT3/EXT4/Reiserfs/Xfs) 下删除或者格式化的数据恢复流程和可行性。
|
1月前
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
37 0
|
5天前
|
弹性计算 运维 安全
阿里云轻量应用服务器与ECS的区别及选择指南
轻量应用服务器和云服务器ECS(Elastic Compute Service)是两款颇受欢迎的产品。本文将对这两者进行详细的对比,帮助用户更好地理解它们之间的区别,并根据自身需求做出明智的选择。
下一篇
DataWorks