1.前端项目部署
- 将nginx的安装目录的html中的静态资源文件先删除掉

-
将静态资源文件,全部上传到nginx安装目录下的 html 目录中
-
修改资料中提供的
nginx.conf配置文件,将其上传到nginx安装目录下的 conf 目录中 -
重新加载nginx服务的配置文件
sbin/nginx -s reload
- 再次访问nginx (可能会存在浏览器缓存, 可以按Ctrl+F5, 强制刷新清理缓存)
nignx服务常见操作指令
启动:sbin/nginx
重载:sbin/nginx -s reload
停止:sbin/nginx -s stop
2.后端项目部署
环境准备:
再准备一份文件 application.yml 将里面的配置的mysql的ip地址及相关配置信息修改一下(配置Linux上安装的MySQL的信息):

改造完毕之后,可以在本地的idea中先启动当前项目,然后访问一下,看看工程是否正常访问
打包部署:
-
执行
package指令,进行打包操作,将当前的springboot项目,打成一个jar包(跳过测试) -
在Linux服务器上创建一个目录,将jar包上传到服务器
mkdir -p /usr/local/app
- 通过java命令,启动项目
/usr/local/app cd /usr/local/app
java -jar tlias-web-management-0.0.1-SNAPSHOT.jar
- 项目启动之后,就可以打开浏览器进行测试
阿里云OSS密钥配置:
由于在开发的时候,将访问阿里云OSS的AccessKeyId,AccessKeySecret都配置在了系统的环境变量中了。那现在项目部署到了Linux服务器中,调用阿里云OSS进行文件上传时,程序就会获取Linux系统中的环境变量。所以,需要将AccessKeyId,AccessKeySecret配置为Linux系统的环境变量
- 查看Windows系统之前配置的环境变量
echo %OSS_ACCESS_KEY_ID%
echo %OSS_ACCESS_KEY_SECRET%
将上述自己的 AccessKeyId 与 AccessKeySecret 复制出来,然后在linux系统中配置环境变量
- 执行如下命令
echo "export OSS_ACCESS_KEY_ID=自己阿里云OSS账号的 OSS_ACCESS_KEY_ID" >> /etc/profile
echo "export OSS_ACCESS_KEY_SECRET=自己的阿里云OSS账号的OSS_ACCESS_KEY_SECRET" >> /etc/profile
source /etc/profile
- 执行完毕后,将finalShell的窗口关闭掉,重新打开一个新窗口(让环境变量生效),重新运行项目测试
后台运行:
- 后台运行程序
nohup java -jar tlias-web-management-0.0.1-SNAPSHOT.jar &> tlias.log &
服务运行之后, 所有的日志信息都会输出到 tlias.log 文件中
- 停止服务

nohup命令说明:
用于不挂断地运行指定命令,退出终端不会影响程序的运行
语法:nohup command [ args ... ] [&]
参数说明:
command:要执行的命令
args:一些参数,可以指定输出文件
&:让命令在后台运行
Docker项目部署
1.快速入门
部署MySQL
使用Docker安装,仅仅需要一步即可,在命令行输入下面的命令:

MySQL安装完毕!通过任意客户端工具即可连接到MySQL
这里下载的不是安装包,而是镜像
镜像中不仅包含了MySQL本身,还包含了其运行所需要的环境、配置、系统级函数库
因此它在运行时就有自己独立的环境,就可以跨系统运行,也不需要手动再次配置环境了
这套独立运行的隔离环境我们称为容器
Docker安装软件的过程,就是自动搜索下载镜像,然后创建并运行容器的过程
总结:
Docker本身包含一个后台服务,我们可以利用Docker命令告诉Docker服务,帮助我们快速部署指定的应用。Docker服务部署应用时,首先要去搜索并下载应用对应的镜像,然后根据镜像创建并允许容器,应用就部署完成了
命令解读:
docker run -d :创建并运行一个容器,-d则是让容器以后台进程运行
--name mysql : 给容器起个名字叫mysql,你可以叫别的
-p 3307:3306 : 设置端口映射
- e
TZ=Asia/Shanghai: 配置容器内进程运行时的一些参数
mysql:8 :设置镜像名称,Docker会根据这个名字搜索并下载镜像
镜像的名称不是随意的,而是要到DockerRegistry中寻找,镜像运行时的配置也不是随意的,要参考镜像的帮助文档,这些在DockerHub网站或者软件的官方网站中都能找到
2.Docker基础
常见命令:


注:
默认情况下,每次重启虚拟机我们都需要手动启动Docker和Docker中的容器。通过命令可以实现开机自启:
systemctl enable docker Docker开机自启
docker update --restart=always [容器名/容器id] Docker容器开机自启
演示:(以Nginx为例)


3.数据卷:
程序运行产生的数据、程序运行依赖的配置都应该与容器解耦
数据卷(volume)是一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁。
以Nginx为例,我们知道Nginx中有两个关键的目录:
html:放置一些静态资源;conf:放置配置文件
要让Nginx代理静态资源,最好是放到html目录;
要修改Nginx的配置,最好是找到conf下的nginx.conf文件

创建了两个数据卷:conf、html
Nginx容器内部的conf目录和html目录分别与两个数据卷关联
而数据卷conf和html分别指向了宿主机的/var/lib/docker/volumes/conf/_data目录和/var/lib/docker/volumes/html/``_data目录
所以容器内的conf和html目录就 与宿主机的conf和html目录关联起来,我们称为挂载
命令:

注:
容器与数据卷的挂载要在创建容器时配置,对于创建好的容器,是不能设置数据卷的。而且创建容器的过程中,数据卷会自动创建
演示(nginx的html目录挂载):

演示(MySQL的匿名数据卷):
第一是.Config.Volumes部分:

发现这个容器声明了一个本地目录,需要挂载数据卷,但是数据卷未定义。这就是匿名卷
.Mounts部分:

Name:数据卷名称。由于定义容器未设置容器名,这里的就是匿名卷自动生成的名字,一串hash值。
Source:宿主机目录
Destination : 容器内的目录