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

 更新时间:2023年12月04日 09:45:39   作者:翟文彪  
作为后台开发,项目打包部署是经常性的操作,下面这篇文章主要给大家介绍了关于SpringBoot前后端分离项目之打包、部署到服务器的相关资料,文中通过代码示例介绍的非常详细,需要的朋友可以参考下

实施步骤

一、修改配置文件地址

1.修改MySQL配置

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

2.修改Redis配置

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

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

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

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

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

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)

四、后端项目打包

1.项目打包(jar包)

  • 使用命令mvn package(需要服务器安装maven环境)
  • 使用命令cd target/进入到目录就能看到打好的jar包(这里的jar包是ruoyi.jar)
  • 将jar包拷贝到上级目录,防止target目录清理导致jar包丢失

2.项目打包(war包)

修改pom文件

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

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

  • 将修改后的两个文件上传到服务器(上传对应文件并替换即可)
  • 使用命令mvn clean清理目录
  • 使用命令mvn package打war包
  • 使用命令cd target在这个目录就找到了war包

五、部署前端项目

1.使用Nginx部署前端项目

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

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

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

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

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

使用命令./nginx启动nginx

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

六、部署后端项目

1.部署jar包方式

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

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

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

进入到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
  • 新增一条配置信息,将原来的访问方式改为根目录访问

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

3.配置集群

修改nginx.conf文件

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

重启一下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文件夹即可

总结

到此这篇关于SpringBoot前后端分离项目之打包、部署到服务器的文章就介绍到这了,更多相关SpringBoot打包部署到服务器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 关于Java Spring三级缓存和循环依赖的深入理解

    关于Java Spring三级缓存和循环依赖的深入理解

    对于循环依赖,我相信读者无论只是听过也好,还是有过了解也好,至少都有所接触。但是我发现目前许多博客对于循环依赖的讲解并不清楚,都提到了Spring的循环依赖解决方案是三级缓存,但是三级缓存每一级的作用是什么,很多博客都没有提到,本篇文章带你深入了解
    2021-09-09
  • 详解SpringBoot如何自定义Starter

    详解SpringBoot如何自定义Starter

    Starter是Spring Boot中的一个非常重要的概念,Starter相当于模块,它能将模块所需的依赖整合起来并对模块内的Bean根据环境( 条件)进行自动配置。本文将介绍SpringBoot如何自定义Starter,感兴趣的可以学习一下
    2021-12-12
  • 解决springMVC 跳转js css图片等静态资源无法加载的问题

    解决springMVC 跳转js css图片等静态资源无法加载的问题

    下面小编就为大家带来一篇解决springMVC 跳转js css图片等静态资源无法加载的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • JavaAgent实现http接口发布方式浅析

    JavaAgent实现http接口发布方式浅析

    这篇文章主要介绍了JavaAgent实现http接口发布方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-03-03
  • java 设计模式之单例的实例详解

    java 设计模式之单例的实例详解

    这篇文章主要介绍了java 设计模式之单例的实例详解的相关资料, 希望通过本文能帮助到大家,让大家彻底理解掌握单例模式,需要的朋友可以参考下
    2017-09-09
  • 使用mybatisPlus生成oracle自增序列遇到的坑及解决

    使用mybatisPlus生成oracle自增序列遇到的坑及解决

    这篇文章主要介绍了使用mybatisPlus生成oracle自增序列遇到的坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • java代理 jdk动态代理应用案列

    java代理 jdk动态代理应用案列

    java代理有jdk动态代理、cglib代理,这里只说下jdk动态代理,jdk动态代理主要使用的是java反射机制,需要了解的朋友可以参考下
    2012-11-11
  • Mybatis Example的高级用法详解

    Mybatis Example的高级用法详解

    这篇文章主要介绍了Mybatis Example的高级用法详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • 基于JDOM生成解析XML过程解析

    基于JDOM生成解析XML过程解析

    这篇文章主要介绍了基于JDOM生成解析XML过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • 详解Windows 配置Java环境变量的方法

    详解Windows 配置Java环境变量的方法

    这篇文章主要介绍了Windows 配置Java环境变量,通过配置JAVA_HOME环境变量,配置Path环境变量的过程解析,给大家详细介绍了java环境变量的配置过程,需要的朋友可以参考下
    2022-04-04

最新评论