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

2020-03-15  本文已影响0人  俊果果

一、准备服务器

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

此处使用 centos7 系统

2、服务器安装 JDK

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

3、安装 mysql

4、安装 nginx

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


二、准备域名

1、购买域名

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

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

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


三、打包 springboot 项目

1、pom添加打包插件

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!--替换成自己项目启动类的全路径-->
                    <mainClass>com.test.xxxApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

2、执行打包命令

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

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

四、运行项目

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

2、命令行启动服务

java -jar yourjarpackage.jar
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 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包中。

六、防火墙开放 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

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

上一篇 下一篇

猜你喜欢

热点阅读