2020-03-15 SpringBoot打包部署上线示例

一、准备服务器

1、购买vps 或者 本地新建虚拟机

此处使用 centos7 系统

2、服务器安装 JDK

参考以前的文章 ubuntu Docker 安装 ElasticSearch 中的以下段落
二、安装 jdk

3、安装 mysql

  • 参考以前的文章 Docker 安装 mysql
  • 需要注意这里mysql的时区是UTC
    image.png

4、安装 nginx

参考以前的文章 CentOS7 安装nginx 配置文件下载服务器


二、准备域名

1、购买域名

2、 DNSPod 设置新增一条记录如下

image.png

此处我们使用 api.xxx.com 作为我们部署的服务的域名

3、修改完成,ping 命令验证是否成功



三、打包 springboot 项目

1、pom添加打包插件


        
            
                org.springframework.boot
                spring-boot-maven-plugin
                
                    
                    com.test.xxxApplication
                
                
                    
                        
                            repackage
                        
                    
                
            
        
    

2、执行打包命令

mvn install -Dmaven.test.skip=true
image.png

执行完后可以在target目录找到打包好的jar文件

四、运行项目

1、拷贝打包好的jar文件到服务器

2、命令行启动服务

  • 前台方式启动,关闭会话即退出
java -jar yourjarpackage.jar


  • nohup 后台运行
nohup java -jar yourjarpackage.jar > nohup.log &
# nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行;当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中,这里指定输出到 nohup.log 文件

Ctrl + Z 将任务暂停并放到后台,然后jobs查看所有后台任务,然后bg +编号将选中的任务变成在后台继续执行
可通过jobs命令查看后台运行任务

image.png

这里会列出所有后台的作业,并且每个任务前面都有编号,可通过fg+编号的方式将该作业调回前台进行控制
image.png

此命令只对当前终端有效,关闭后在其他会话不可见
ps -aux | grep java

  • 查看端口占用
lsof -i:端口号
image.png

或使用

netstat -tunlp | grep 端口号

image.png

然后通过kill -9 pid 即可杀死进程

  • tmux后台运行任务
    tmux介绍可以参考文章Tmux:更优雅的后台任务执行和窗口共享
#创建命名Tmux会话
tmux new -s session_name
#查看命令
ctrl + b + ?
# ctrl + a + d 从会话中退出
# 查看所有会话
tmux ls
# 重新进入会话
tmux attach -t session_name

实际使用如下:

tmux new -s api
java -jar webapisvc-0.0.1-SNAPSHOT.jar
ctrl + b +d #退出会话(或直接关闭窗口)
tmux ls #查看运行中的后台会话
tmux attach -t api #重新进入会话

五、配置文件说明

默认项目有以下配置

image.png

进行打包之后,这些资源文件也会包含在jar包中。

  • Spring程序运行时会按优先级从下面这些路径来加载application.properties配置文件:
    当前目录下的/config目录
    当前目录
    classpath里的/config目录
    classpath 根目录
  • 所以如果需要修改服务器的配置,只需要在上面优先级比较高的目录中新增一份配置文件,改动后重启服务即可

六、防火墙开放 80端口

centos7防火墙设置参考文章CentOS 7 开放防火墙端口命令

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
# 关闭端口
firewall-cmd --remove-port=80/tcp --permanent
# 查看已开放的端口:
firewall-cmd --list-ports

七、nginx配置代理转发

因为后端服务是 8080 端口,对外开放的是 80 端口,所以需要做代理转发

/etc/nginx/conf.d
vim api.conf

新增配置文件,内容如下

image.png

然后重启nginx

nginx -s reload

就可以通过浏览器访问域名了

你可能感兴趣的:(2020-03-15 SpringBoot打包部署上线示例)