SpringBoot 项目如何部署到云服务器

该文详细介绍了如何在Linux云服务器上部署搜索引擎项目,包括购买腾讯云学生服务器、设置SSH登录、安装JDK、Tomcat和MySQL,以及开放端口和运行后台进程的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此处针对上一篇博客 - 搜索引擎项目做一个部署环节.

1.准备好前提环境

1.1 准备好轻量级云服务器

如何买一个 Linux 系统的云服务器 ??

阿里云, 腾讯云, 华为云, ucloud...... 哪个便宜就选哪个.

如何去买 ?? 我买的是腾讯云.

1. 浏览器搜索 "腾讯云学生计划" >>

2. 购买一个一年的 2核 2 G 的云服务器即可 >>

点击立即购买, 直接 qq 登录即可. 此处由于我已经买过了, 所以没有新用户权限了,演示不了. 操作其实也很简单, 登陆之后, 给云服务器装好系统就行了, 五分钟内就可以搞定. [注意系统镜像选择 Centos7]

3. 购买完成之后, 进入到控制台, 就可以查看云服务器详细信息了 >>

此处的 IP 地址, 一个是外网IP (公网), 也就是后续登录到云服务器上用的 IP.

4. 初次使用时, 默认密码是 root , 所以需要重置密码 >>

此处重置密码最好设置一个比较复杂的密码. 如果忘记密码了, 就在这里重新设置即可.

5. 进行远程登录 >>

需要使用到终端工具, 此处推荐的是 xshell.

如何下载安装 xshell ?? 浏览器直接搜索 xshell 官网即可 >>

然后点击下载即可 >>

然后选择免费版本下载即可 >>

然后随便起一个用户名, 用自己的邮箱即可 >>

注意这里点击下载之后, 它不会立即下载, 而是系统会发一封邮件到你的邮箱, 而邮箱里就包含了下载地址.点击下载地址下载安装即可, 安装过程很简单, 一路 next 即可.

安装好 xshell 之后, 就可以进行远程登录了

打开 xshell , 来到这个界面(大同小异), 选择新建即可 >>

点击连接后, 会弹出一个框框, 让我们输入用户名, 填写 root 即可, 然后勾选记住用户名 >>

点击确定后, 又会弹出输入密码框 >>

此处输入我们之前重置的密码即可, 输完密码之后, 就会显示这样的信息>>

1.2 安装一些依赖的程序

JDK,Ttomcat 以及MySQL

1.2.1 安装 JDK

推荐使用 yum 来安装, 这里的 yum 相当于linux 的应用商店>>

使用如下命令可以把 jdk 相关的软件包都罗列出来:

yum list | grep jdk

在罗列出的 jdk 软件包中, 我们选择下面这个软件包进行安装 :

此处的 devel 表示用来开发的软件工具包, x86_64 表示针对 64 位系统.

安装命令如下 :

yum install java-1.8.0-openjdk-devel.x86_64
1. 由于这个安装过程需要联网, 所以需要花一定的时间, 安装到某个步骤时, 会弹出 [y/d/N] 这样的选项, 没有安装过的就可以直接选择 y 继续安即可, 最后看到 Complete! 就说明安装成功.
2. 此处通过 xshell 操作的都是云服务器, 和本地环境无关, 也就是说如果你换了一台电脑再去登录同一台云服务器, 所看到的效果是完全一样的.

jdk 安装成功后, 输入如下命令验证是否安装成功 :

javac

如果直接输入 javac 不报错, 而是提示出一些帮助选项, 就说明你安装成功了!

1.2.2 安装 tomcat

  1. 使用如下命令查看 tomcat 软件安装包

yum list | grep tomcat

发现此处最新的版本也就只有 7.0, 而我们需要的 tomcat 是 8.5.

tomcat8.5下载地址:https://archive.apache.org/dist/tomcat/tomcat-8/

又因为 tomcat 是运行在 Java 上的, 而 Java 是跨平台的, 那么 tomcat 同样也是. 所以只需要把之前从官网上下载好的 tomcat 的压缩包拷贝 (拖拽) 到 linux 上, 进行解压缩即可.

如果你买的云服务器无法正常上传 (拖拽), 就那么就可以使用如下命令安装一个软件包 >>

yum install lrzsz
此处的 rz 负责从 windows 电脑把文件传到 linux 服务器
此处的 sz 负责从 linux 服务器把文件传到 windows.
  1. 解压缩

把 tomcat 的压缩包上传到 linux 服务器上后, 使用如下命令进行解压缩 >>

unzip apache-tomcat-8.5.72

解压缩完之后, 就到了一个 apache-tomcat-8.5.72 目录 :

使用 cd 命令进入到该目录下, 发现和Windows的 apache-tomcat-8.5.72 目录打开的效果是一样的.

如果 unzip 一敲, 出现找不到命令. 就先输入 yum install unzip 即可.

  1. 启动 tomcat

先 cd 到 bin 目录下, 然后找到 startup.sh 文件.

首次使用(后续就不用了), 在启动 tomcat 之前, 需要先给 .sh 文件都加上可执行权限 (也就是使其变绿), 使用如下命令 :

chmod +x *.sh

使用如下命令来启动 tomcat :

./startup.sh
或者 sh startup.sh
  1. 验证 tomcat 是否在正常工作

三种方案 :

1. 使用 ps 查看 tomcat 的进程
2. 使用 netstat 查看对应的 8080 端口
3. 使用浏览器访问 tomcat 的欢迎页面
  1. 第一种方案使用命令 ps aux | grep tomcat

  1. 第二种方案使用命令 netstat -anp | grep 8080

显示一个Java 进程绑定了 8080 端口.

  1. 第三种方案在浏览器使用外网 IP 访问 8080 欢迎页面 :

这种方式, 如果没有开放端口, 是访问不了的, 这是云服务器商, 为了保证云服务器安全的, 默认禁止了外部的客户端访问服务器上的各种端口, 就相当于一个 "防火墙".

所以此处为了让外界能够访问到服务器的 8080 端口, 就需要把8080 端口从防火墙里给放开!!

5. 如何开放 8080 端口 :

进入到控制台详情页面后, 选择防火墙 :

然后点击左侧的添加规则,. 然后启动 8080 端口即可.

1.2.3 安装 MySQL (此项目不涉及)

说是说安装 MySQL , 实际上是安装 MariaDB.

具体安装步骤可以参照这篇文章 : https://zhuanlan.zhihu.com/p/49046496

安装好了之后, 就可以测试客户端连接了 >>

只需要输入如下命令即可. (默认是没有密码的)

mysql -uroot

后续操作就和我们学过的 MySQL 一模一样了.

2. 把程序依赖的数据给拷贝到云服务器上

搜索引擎项目所依赖的数据有以下三个文件 >>

直接将这三个文件拖入到 xshell 中即可, 我这里已经准备好了数据文件>>

3. 打包部署

如果你的程序涉及到 MySQL 的操作, 那么就还需要在云服务器上建库建表, 此处不涉及, 就省略了这一步操作 (操作简单, 你会操作本地 MySQL , 就会操作云服务器的 MySQL)

3.1 打开 IDEA 双击 package

当出现 BUILD SUCCESS 字样, 则说明打包成功!!

此时打开左侧的 target 目录, 找到一个 jar 包, 右击 open in -> explorer :

你可以对该文件进行重命名(随意), 也可以使用默认的, 此处我为了方便在 linux 上操作, 就进行了重命名.

3.2 将生成的 jar 包上传到 Linux 上

直接拖拽即可.

此时我的 Linux 上就已经有 api_searcher_index.jar 这个 jar 包了.

3.3 在 Linux 环境下运行程序

使用如下命令运行程序 :

java -jar api_searcher_index.jar

此时你的程序就可以被大家一起玩转了, 别人只需要使用你的云服务器的外网 IP 就能访问你的静态页面, 进而访问你的程序了.

但是这种运行方式, 一旦你关闭了 xshell 窗口, 也就意味着你刚刚输入的命令随着终端程序的关闭而被杀死, 但是你的电脑肯定会在某个时间关机的, 一旦关机, xshell 终端也就会随之被关闭

那么我们该如何在 linux 环境上运行 SpringBoot 程序呢 ??其实这涉及到 Linux 中的一个概念 : 前台进程 VS 后台进程

此处的前台进程和后台进程和 Java 里面的前台进程,后台进程没啥关系.

1. 前台进程 : 是在终端中运行的命令,那么该终端就为进程的控制终端, 一旦这个终端关闭, 这个进程也随之消失. (直接输入一个命令产生的进程, 都是前台进程.)
2. 后台进程 : 也叫守护进程(Daemon), 是运行在后台的一种特殊进程,不受终端控制,它不需要终端的交互; Linux的大多数服务器就是使用守护进程实现的. 比如Web服务器的httpd等.

下面提供一种在 Linux 上运行后台进程的命令 :

nohup java -jar api_searcher_index.jar &

此时目录下多了一个 nohup.out 的文件, 使用 cat 文件名打开该文件 :

发现其实这个文件里的东西就是 SpringBoot 程序运行时打印的日志文件. 此时这些文件就不在终端显示了, 但是现在就算你关闭了 xshell 终端, 别人依旧可以访问你的服务器了.

【注意事项】

通常情况下, 如果你的 8080 端口已经被占用了, 那么你再使用 8080 端口来绑定你现在正在部署的程序, 那么就会执行失败.

解决方案 :

1. 把其他占用 8080 端口的进程给干掉.
2. 重新开放一个端口供当前程序使用. 这个操作需要在打包前就要做好, 在 application.yml 配置文件中更改端口号, 然后按照 1.2.2 步骤中的开放 8080 端口的操作去开放你指定的端口即可.

对于上述第一种方案 :

1. 第一步, 使用命令 lsof -i : 8080 查询出运行的 SpringBoot 进程.
2. 第二步, 使用命令 kill -9 pid(进程id) 将占用该端口的进程杀死即可.

谢谢观看!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Master_hl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值