作为一个程序员,当你拥有第一台服务器时,最想做的事情应该就是把自己写好的项目部署到服务器上供其他小伙伴访问了吧。这次介绍的是SpringBoot项目的部署,SpringBoot项目的部署我感觉是最简单的,只要你在本地环境下运行起来后,想要在服务器上部署也就不成问题了。当然首先要在服务器上搭建项目中你所使用到的技术环境,JDK是必须要用到的。下面我列举一下你可能会使用到的技术,同时我也会陆续更新这些环境是如何在服务器中进行搭建的:
JDK | Linux安装JDK |
MySQL | |
Redis | |
RabbitMQ |
一、打包SpringBoot项目
二、上传jar包到服务器
通过远程连接工具(如xftp)将jar包上传到服务器上:
mkdir /usr/local/javaapp #创建用于存放Java项目的文件夹
等待文件上传成功后在执行项目部署操作。
三、项目部署
由于springboot内嵌tomcat,如果我们的项目将tomcat端口设为8080,那么启动前先确保8080端口是对外开放的并且要关闭占用8080端口的其他服务。
1. 端口开放
查看防火墙以及8080端口是否开启:
[root@localhost ~]firewall-cmd --zone=public --list-ports
8080/tcp #表示防火墙和8080端口都开启了
如果防火墙及端口均未开放可以在我之前的文章中查找相应的解决方案→03.Linux防火墙操作
2. 端口占用解决方案
#先查询占用8080端口号进程
netstat -apn | grep 8080
#删除进程
kill -9 pid
#再回看8080是否还有进程
netstat -apn | grep 8080
3. 项目运行
3.1 前台运行
[root@localhost ~]java -jar 项目名.jar
优点:控制台上直接输出运行结果,可以第一时间知道错误。
缺点:当执行命令的窗口关闭时,项目也就终止运行了。
3.2 后台运行
nohup java -jar 项目名.jar --server.port=8099 &> hello.log
参数说明:
- --server.port=8099 :指定项目运行的端口号,该配置会覆盖项目中的application.yml的端口号配置
- &> hello.log:表示日志输入文件
优点:
- 线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行
- 线上程序不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息
温馨提示:
- 如果你的服务器硬盘空间较小,在项目中配置文件的日志打印方式设为error级别即可,不要使用info,不然你的服务器就会因为系统盘占用过高导致宕机。
3.3 停止项目
ps -ef | grep 'java -jar'