Linux环境下-SpringBoot 前后端分离项目的部署

一、前言

  本文记录的是基于Nginx服务器搭建、配置完成后的项目部署流程案例,仅用于记录和参考使用,若有不当之处,欢迎指正。

二、环境

SpringBoot + Vue + Nginx

三、项目部署步骤

1、Xshell下载安装

springboot前后端分离 面试 springboot前后端分离部署_java


springboot前后端分离 面试 springboot前后端分离部署_maven_02


  我连接Linux用的是Xshell 6,文件传输使用的是其自带的Xftp 6,软件本身是收费的,但官方提供了“家庭和学校用户的免费许可证”,使我们可以免费试用本软件,这点还是挺人性的。下面是简单下载步骤:

springboot前后端分离 面试 springboot前后端分离部署_linux_03


springboot前后端分离 面试 springboot前后端分离部署_jar包_04

  接下来的步骤就是一键安装了,请自行操作。效果如下

springboot前后端分离 面试 springboot前后端分离部署_jar包_05

  登录举例:

输入命令(切换到root账号并赋权):su root
	输入密码(Linux系统中密码输入本身不可见,只要保证输对了,放心按回车就行)后登录
	非必须操作的命令(习惯性切到根目录下):cd /

springboot前后端分离 面试 springboot前后端分离部署_maven_06


springboot前后端分离 面试 springboot前后端分离部署_jar包_07

2、前端项目打包

springboot前后端分离 面试 springboot前后端分离部署_linux_08

打包命令运行完之后,本地代码存储位置将生成一个dist文件夹,内容如下:

springboot前后端分离 面试 springboot前后端分离部署_java_09

3、前端项目包导入虚拟机对应文件夹

  切回Xftp 6界面,在本机找到前端项目包dist的位置,在虚拟机找到对应存放前端项目包的位置(在虚拟机创建文件夹,然后在Nginx中配置好才能扫描的到,具体请自行百度),删除项目包里的内容,然后将dist的内容直接拖拽进去即可。

springboot前后端分离 面试 springboot前后端分离部署_linux_10

注意:如果虚拟机对应的前端项目包内已有内容,请一定先删除后再将新的项目包导入,否则会权限不足的错误,导致无法导入

4、后端项目打包

  直接在IDEA中的Maven操作界面操作。

springboot前后端分离 面试 springboot前后端分离部署_linux_11

  先clean,然后再package,若最后显示成功,则打包成功。打包生成的文件存在代码里的target目录下,格式为xxxx-0.0.1-SNAPSHOT.jar。

5、后端jar包导入虚拟机对应文件夹

  步骤与前端操作一样,切回Xftp 6界面,在本机找到jar包的位置,在虚拟机找到对应存放jar包的位置(在虚拟机创建文件夹,然后在Nginx中配置好才能扫描的到,具体请自行百度),删除原jar包,然后将新jar包直接拖拽进去即可。

springboot前后端分离 面试 springboot前后端分离部署_springboot前后端分离 面试_12


注意:如果虚拟机对应的jar包内已存在,请一定先删除后再将新的jar包导入,否则会权限不足的错误,导致无法导入

6、后台启动项目

  准备工作就绪之后,直接通过Linux的命令启动项目即可。启动的步骤如下:

首先查看Java项目是否启动。
ps -ef|grep java
若有Java项目在启动中,判断其是否与要启动的项目为一个。若两者为同一项目,则为避免端口冲突,先将启动中的项目Kill掉,代码如下,‘xxxx’代表的是端口ID。
kill -9 xxxx
此时即可以启动项目了,输入命令即可运行:
nohup java -jar /路径/xxxx-0.0.1-SNAPSHOT.jar &

注意:有时通过此命令启动时,会报如下错误。此应该是我这Nginx配置的问题,如果有人也遇到,可以通过重新加载配置文件的命令,解决此问题

springboot前后端分离 面试 springboot前后端分离部署_jar包_13

##重新加载配置文件
source /etc/profile
##若想查看启动日志(此为临时日志,不作保存,若想保存错误日志,应在Nginx中配置,请自行百度),可以通过以下命令获取(此处仅获取500条)
tail -500f nohup.out

四、结语

  今天的记录就到这里,主要是为了自己记忆方便,若能帮助到他人一二,也是甚好。