Springboot项目部署到Linux上,并远程访问测试

通过Springboot登陆demo实战记录,我们做了一个Springboot的登陆demo。下一步我们想要实现的是将该项目发布到服务器上。
Springboot项目有两种发布方式,一种是Springboot默认的jar包方式发布,一种是传统的war包的方式。下面是将Springboot项目部署在服务器上的具体步骤。

1. 服务器环境部署

1.1 安装JDK

很明显,Springboot项目是使用java作为开发语言,所以你的服务器上一定要有JDK,才能够正常运行你的项目。
oracal官网下载对应版本的JDK,这里使用的是JDK15。我们选择这种tar.gz格式的。
在这里插入图片描述下载之后打开控制台,进入你的下载路径,使用$tar -zxvf jdk-15.0.2_linux-x64_bin.tar.gz 对其进行解压,解压后,你的下载路径中会多一个jdk-15.0.2的文件,说明解压成功。

1.2 配置环境变量

和Windows一样,JDK安装后,需要去配置环境变量。

使用命令$vim /etc/profile进行环境变量配置模块,光标滑到最后一行,输入I进入插入模式,另起一行输入:

export JAVA_HOME=/home/dell/下载/jdk-15.0.2 (根据自己的完整路径修改)

export PATH= P A T H : PATH: PATH:JAVA_HOME/bin: J A V A H O M E / j r e / b i n : JAVA_HOME/jre/bin: JAVAHOME/jre/bin:PATH

export CLASSPATH=.: J A V A H O M E / l i b : JAVA_HOME/lib: JAVAHOME/lib:JAVA_HOME/jre/lib

复制粘贴后按ESC退出,另起一行输入wq!,回车退出

1.3激活环境

$source /etc/profile
$java -version

如果出现java版本信息,则环境变量配置成功。

2. 项目部署

2.1 jar包方式部署

这种方式是Springboot推荐且默认的,部署起来十分方便。

2.1.1 打包

在已经安装了maven且配置了环境变量的基础上,在IDEA的terminal中输入mvn clean package。即可对项目进行打jar包。(terminal的路径必须是你项目的根路径,其实最简单的办法就是关掉terminal,再打开,路径就是项目根路径。)
在这里插入图片描述

2.1.2 运行jar包

Springboot以Jar包方式部署十分简单,我们打好包之后,将jar包移动到linux机器上(我是通过QQ邮箱发送文件,再下载的方式),打开控制台,使用cd 命令进入你jar包存放位置,输入java -jar xxx.jar即可运行。

这种启动jar包的方式,启动之后,控制台便被锁定不能输入其他指令。并且控制台关闭,则服务也被关闭了。
如果想让该服务不受控制台关闭影响,可以使用下面的命令:
$nohup java -jar XXXXXX.jar &
表明忽略一切关闭信号。

2.2 war包方式部署

war包部署的方式就比较麻烦了,首先要更改pom.xml文件、还要下载和配置tomcat、更改启动类。

2.2.1 更改pom.xml文件

1)更改打包方式。Springboot默认是jar,在pom.xml中添加:
在这里插入图片描述
2) 移除Springboot自带的tomcat
spring-boot-stater-web依赖中添加以下内容:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>#开始
                <exclusion> 
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>#结束
        </dependency>

还有一种方法也可以。这里使用的是这种方法。
3) 导入java servlet 容器依赖

 <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
        </dependency>

4)更改打包名字(随意)

这里默认是项目名,也可以更改。在build中添加final name标签。

<build>
        <finalName>denglu</finalName> #更改打包后的名字。默认为项目名字
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
2.2.2 修改启动类

让原来的启动类继承SpringBootServletInitializer,并且重写其中的configure方法。

@SpringBootApplication
@MapperScan(basePackages = "com.hky.springboot_login_register.mapper")
public class SpringbootLoginRegisterApplication extends SpringBootServletInitializer{

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder){
        return builder.sources(SpringbootLoginRegisterApplication.class);
    }
    public static void main(String[] args) { #原来启动类的Main函数,不用更改
        SpringApplication.run(SpringbootLoginRegisterApplication.class, args);
    }
}
2.2.3 打成war包

和上述打成jar包方式一样,不再赘述。

2.2.4 安装tomcat

因为Springboot项目内嵌的有tomcat,所以我们之前的程序可以直接运行,现在我们打war包之前,移除了tomcat依赖,所以我们需要在服务器上安装一个tomcat服务器来运行我们的项目。

下载tomcat

首先,去官网下载页面下载tar.gz格式的tomcat。
在这里插入图片描述

解压tomcat

控制台cd 进入tomcat压缩包下载位置,输入命令对其解压。

tar -zxvf 安装包全名

解压后,该目录下会有一个不带tar.gz后缀的tomcat文件,即表示解压成功。
在这里插入图片描述

运行tomcat

进入解压后的tomcat文件夹的bin目录下,通过终端输入 ./startup.sh 运行tomcat。
在这里插入图片描述
出现上面的界面表示运行成功,然后打开浏览器,输入localhost:8080进行测试,如果出现tomcat页面则表示启动成功。如果没有进入tomcat页面,那基本上是防火墙的问题,去关闭一下防火墙,或者让防火墙开放8080端口。

2.2.5 将war包移动到tomcat的webapps下

tomcat默认在webapps下存放项目,因此通过终端命令

sudo cp war包名 tomcat的webapps路径将其移动到webapps目录下。

2.2.6 配置server.xml

上述流程走完之后,我的程序还是无法运行,具体表现为可以访问tomcat页面,可以访问项目主页面,但是当项目进行跳转的时候,出现404错误。
这个问题困扰了我一天,我尝试了网上的各种方法,包括tomcat版本问题、防火墙问题、甚至是代码问题。
最后我发现 当我启动项目,进入主页面的时候,我的浏览器地址为

localhost:8080/项目名/主页面

当我进行跳转的时候,浏览器地址本应该变成

localhost:8080/项目名/某页面

但是却变成了localhost:8080/某页面

少了项目名,所以访问不到页面。

所以我更改了server.xml中的信息。具体操作如下:
1 .终端进入tomcat下的conf目录
2. 使用vim server.xml 命令对其进行编辑。
3. 输入I 进入编辑模式。
4. 找到Host标签,在其中插入子标签Context。
5.ESC退出编辑模式,输入 :wq ,回车退出。
在这里插入图片描述
path表示localhost:8080/后面加什么可以启动你的项目。
docBase表示你要启动的项目的路径。可以是绝对路径也可以是相对路径。

这样就不会报404了,总结一下,感觉报404的基本上就是项目路径,或者跳转路径的问题- - 。

### 部署 Java SpringBoot 项目Linux 的宝塔面板 #### 准备工作 在开始之前,确保已经完成以下准备工作: - 已经拥有一个可以正常运行SpringBoot 项目。 - 购买了支持 Linux 系统的云服务器(如腾讯云或其他服务商)已成功连接至该服务器。 - 在本地开发环境中测试项目的功能。 #### 打包 SpringBoot 项目为 JAR 文件 为了能够顺利部署到远程服务器上,需要先将 SpringBoot 应用程序打包成可执行的 JAR 文件。可以通过 Maven 或 Gradle 构建工具实现这一目标[^1]。 ```bash mvn clean package -DskipTests=true ``` 上述命令会清理旧的目标目录、编译源码以及跳过单元测试从而生成最终产物——位于 `target` 文件夹下的 `.jar` 文件[^2]。 #### 安装 JDK 和 MySQL 数据库服务 登录到您的 Linux 服务器通过 SSH 终端或者通过宝塔管理后台进入命令行界面。首先确认是否安装了最新版本的 OpenJDK: ```bash java -version ``` 如果没有找到合适的 JDK 版本,则需下载适合您系统的 JDK 按照官方文档指示进行安装。对于 MySQL 数据库同样如此,也可以借助宝塔面板图形化操作简化流程。 #### 使用宝塔面板上传文件与配置环境变量 利用宝塔提供的便捷方式快速完成文件传输任务而不必依赖复杂的 FTP 设置过程。具体步骤如下所示: 1. 登录到宝塔官网注册账户绑定名解析指向对应 IP 地址; 2. 创建站点关联磁盘路径作为存储位置; 3. 将刚才构建好的 jar 包拖拽上传至此处指定区等待进度条结束即表示成功传送完毕; 接着,在同一界面上方导航栏选择“软件商店”,搜索点击安装所需的 JDK 及 Nginx (用于反向代理访问) 。完成后记得重启所有相关进程以应用更改效果。 #### 启动应用程序 当一切准备就绪之后就可以尝试启动我们的 spring boot 应用了。切换回 ssh session 输入下面这条简单的 java 命令即可让其作为一个守护线程持续运作下去直到人为干预停止它为止 : ```bash nohup java -jar your-application-name.jar > app.log & ``` 这样不仅可以让程序保持在线状态而且还能把日志记录重定向保存起来方便后续排查错误信息。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值