Spring Boot前后端分离项目部署到Linux服务器

前言

去年和学长一起开发了一个Spring Boot的前后端分离项目,有后台管理端和小程序端。今年学长已经毕业走了。所以,所有的维护工作和后续的功能开发全部放在了我的身上。之前的开发环境服务器已经到期了,所以又购买了一个新的开发环境服务器。准备将项目重新部署到这个服务器上,方便我的学弟学妹们做测试和学习。就此机会也记录一下部署过程,也方便以后接手项目的学弟学妹们学习。

准备工作

服务器java环境准备

新购买的服务器被我安装了CentOS,所以安装java1.8很简单,直接用yum进行安装即可。

# yum install java-1.8.0-openjdk

安装之后的默认路径是:/usr/lib/jvm/
如果没有yum的话,安装可能要麻烦一点,网上有很多文章是关于Linux下怎么安装java1.8的,这里就不多说了。安装好之后我们验证一下,没问题了就可以了。
验证java

数据库准备

服务器上已经被我安装上了宝塔面板。所以数据库安装和管理非常简单。这里使用的数据库是最常用的MySQL5.6版本,我们在服务器上添加一个新数据库,将我们的数据库SQL文件直接导入就可以了。如果数据库开启外网访问的话一定要设置足够复杂的密码并且更改该默认的3306端口,用其他的端口做数据库访问端口。曾经有幸因为数据库账户设置是root和root被删库勒索过。所以重要的事情说两遍如果数据库开启外网访问的话一定要设置足够复杂的密码并且更改该默认的3306端口,用其他的端口做数据库访问端口。

项目打包

Spring Boot官方推荐使用jar包进行项目部署,也就是用其内置的Tomcat启动服务,所以首先我们需要将项目打包成jar包。项目是Maven项目所以直接再IDEA的Maven工具中的Lifcycle用package打包就可以了。记得修改数据库配置:数据库、端口、用户名、密码等和上边配置的数据一致。
Maven打jar包
等待编译构建完成之后就可以在target目录中找到打好的jar包了。

编译构建好的jar包

部署过程

事实上部署Spring Boot项目很简单,只需要将jar包文件上传到服务器上运行使用jar运行jar文件即可。

# java -jar 包名.jar

切换到我们上传jar包的目录,运行jar文件。
运行jar文件
熟悉的Spring标志已经出来了,证明服务已经启动了。
服务器已经运行了
这时候我们访问我们服务器的IP:设置的端口就可以调用接口了。
在这里插入图片描述
注意:云服务器要配置好端口的放行,宝塔面板也要配置端口放行。

后台运行

不难发现,我们现在是终端运行的服务,当我们关掉终端或结束会话时这个运行的服务也会被关闭,所以我们不能直接在终端上这样运行。我知道的能解决这个问题的有两种方法,一个是使用screen命令,另一个是nohup命令。关于这两个命令的详细说明大家还是自行百度把。这里我们使用screen,方便我们查看输出的内容。用screen的话需要自己安装,用yum很方便自己百度吧。
首先使用screen新建一个命令行会话

# screen -S ApiService

新建screen
运行jar文件
screen下运行jar文件
然后按住Ctrl+A然后再送开A按住D退出screen,关闭SSH会话就可以在服务器上一直运行了。

配置反向代理

我们并没有使用宝塔面板的网站管理,而是使用直接运行的方式,这样配置域名和SSL都很不方便。通常的解决方式是使用Nginx进行反向代理。在宝塔新建站点,然后设置反向代理。

反向代理
目标URL就是本机+项目的端口号,其他的都用改直接提交即可。这样我们就可以通过宝塔面包配置域名和SSL了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot 是一个开源的 JavaEE 框架,可以快速构建 Web 应用程序和微服务。在 Spring Boot 中,前后端不分离的项目通常是使用模板引擎来渲染页面,后端将数据传递给模板引擎,然后模板引擎将数据填充到 HTML 页面中。 在 Spring Boot 中,常见的模板引擎包括 Thymeleaf、Freemarker、JSP 等。使用模板引擎,可以方便地将数据填充到 HTML 页面中,并实现动态页面的渲染。 下面是一个使用 Thymeleaf 模板引擎的 Spring Boot 示例: 1. 添加 Thymeleaf 依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> ``` 2. 创建一个简单的控制器类: ```java @Controller public class HelloController { @GetMapping("/hello") public String hello(Model model) { model.addAttribute("name", "World"); return "hello"; } } ``` 3. 创建一个名为 hello.html 的模板文件: ```html <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Hello</title> </head> <body> <h1 th:text="'Hello, ' + ${name} + '!'"></h1> </body> </html> ``` 4. 运行程序,访问 http://localhost:8080/hello,即可看到页面上显示了“Hello, World!”。 通过使用模板引擎,可以很方便地将数据填充到 HTML 页面中,实现动态页面的渲染。但是,使用模板引擎的前后端不分离项目开发效率低下,难以实现前后端分离、复用和可维护性。因此,在实际开发中,建议使用前后端分离的架构。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值