在真实的开发环境中,开发完成后我们需要将我们的项目部署到公司或者是组里的服务器上去。一般来说,服务器常见是CentOS、Ubuntu等。下面我简单的记录下自己部署项目的一个流程,存做一个记录,以便后面回个头来看。
我使用的putty来连接虚拟机,虚拟机是Ubuntu的,使用的是FailZip来向虚拟机发送文件的,
首先,在我们进行jar打包之前要对系统中的配置文件进行一个检查,主要是检查配置文件中的链接之类的或者是配的一些服务的路径与文件路径是否正确(指的是IP或者是URL是否正确。)如果有使用其他的服务,如区块链fabric技术,需要用到的文件也应该在虚拟机中进行一个创建操作。
然后就是,尝试连接数据库与Redis,检查是否可以正常连接。具体的操作就是在虚拟机上输入以下指令:
1、先测试数据库与Redis是否可以正常连接
ping 数据库[Redis]的IP
2、准备后端包(jar包)与前端包
后端代码打包成jar包的形式通过idea结合Maven实现的。
操作流程是:有多个配置文件(application.yml
)的时候,先选择使用哪个application.yml,然后选中对应的Maven,在其里面的Lifecycle中的先clear再package。
所用的常用指令:
- 查看端口号:
lsof -i:端口号
- 杀掉进程:
kill PID(线程编号)
kill -9 PID 【与上面相比,该指令是直接杀掉进程】
- 解压的命令:
unzip 文件名
- 创建目录:
mkdir 文件名
- 创建多级目录:
mkdir -p 文件名
- 删除文件(夹)的指令
rm (-rf) 文件(夹)名
- 运行jar包:
java -jar jar包名
【一般用于测试,这是最基本的jar包执行方式,但是当我们用ctrl+c中断或者关闭窗口时,程序也会中断执行】
nohup java -jar jar包名 >日志文件[日志文件存储位置] &
java -jar XXX.jar &
&代表在后台运行,使用ctrl+c不会中断程序的运行,但是关闭窗口会中断程序的运行。
nohup java -jar XXX.jar &
使用这种方式运行的程序日志会输出到当前目录下的nohup.out文件,使用ctrl+c中断或者关闭窗口都不会中断程序的执行。
nohup java -jar XXX.jar >temp.log &
>temp.out的意思是将日志输出重定向到temp.log文件,使用ctrl+c中断或者关闭窗口都不会中断程序的执行。
- 查看jar包是否正常运行:
lsof -i:端口号
- 查看日志文件:
vim 日志文件
- vim的一些基本操作:
- 快速到文档末尾:
shift + G
- 输入:
i
- 取消编辑模式:
esc键
- 保存退出:
:wq
- 不保存退出:
:q!
- 搜索:
/
- 退出::
q
- 快速到文档末尾:
- 移动文件:
mv 要移动的文件 目标路径
;其中./
表示当前路径 - 查看Nginx的状态:
systemctl status nginx.service
- 重启Nginx:
systemctl reload nginx.service
3、在运行jar包前要查看端口号是否被占用。如果被占用了就先要结束进程,然后再运行jar
4、在jar包运行没有问题后,我们要进入Nginx里配置我们的一个访问路径,目前我接触到的是在Nginx配置文件里配置后端时是
location /evidence-app/ { //可以理解为转发的前缀,用户访问时,端口号接的那个值
proxy_read_timeout 120; //请求超时时间
proxy_pass "http://127.0.0.1:7099/"; //这个如果jar包就在本机(虚拟机上)就是http://127.0.0.1:项目端口号/
}
location /management-app/{
proxy_read_timeout 120;
proxy_pass "http://127.0.0.1:8088/";
}
在前后端分离的情况下,这两个是需要告诉给前端的【指的是前缀】。前端资源的部署主要是指将前端资源放在哪一个路径下。对此我们可以通过查看配置文件中的root
的值来确定前端资源的位置。