一、准备服务器
1、购买vps 或者 本地新建虚拟机
此处使用 centos7 系统
2、服务器安装 JDK
参考以前的文章 ubuntu Docker 安装 ElasticSearch 中的以下段落
二、安装 jdk
3、安装 mysql
- 参考以前的文章 Docker 安装 mysql
- 需要注意这里mysql的时区是
UTC
image.png
4、安装 nginx
参考以前的文章 CentOS7 安装nginx 配置文件下载服务器
二、准备域名
1、购买域名
2、 DNSPod
设置新增一条记录如下

此处我们使用
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

执行完后可以在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命令查看后台运行任务

这里会列出所有后台的作业,并且每个任务前面都有编号,可通过
fg
+编号的方式将该作业调回前台进行控制
此命令只对当前终端有效,关闭后在其他会话不可见
ps -aux | grep java
- 查看端口占用
lsof -i:端口号

或使用
netstat -tunlp | grep 端口号

然后通过
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 #重新进入会话
五、配置文件说明
默认项目有以下配置

进行打包之后,这些资源文件也会包含在
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
新增配置文件,内容如下

然后重启
nginx
nginx -s reload
就可以通过浏览器访问域名了
网友评论