一、前言
作为一个开发人员,应该都知道项目的部署,但是,博主目前作为还未入职过的开发小白,虽然早就听闻部署,也大概知道部署的作用,但是具体流程却还是没有经历过,所以今天从零开始部署一个项目,学习项目的部署。
二、前期准备
一台云服务器(操作系统为Linux,且已备案),XShell(能连接远程服务器的软件即可,不一定是XShell),实现了一定基础功能的前后端项目。(本人这里准备的是一台搭载CentOS7.9 的阿里云ECS云服务器)
三、部署的基本流程
- 将源代码生成可运行的软件包,例如 jar 包或 war 包等;
- 将可运行的软件包放到目标环境上;
- 配置目标环境使得软件包能够运行起来;
以下我们直接从第二步开始,分别前端和后端分开:
四、前端部署
- nginx 环境准备
首先连接远程服务器,下载nginx,这里推荐直接使用Linux自带的命令下载,避免还需要自己上传nginx的压缩包到云服务器,命令如下:
//curl -o [ 文件名] [对应下载的地址]
curl -o nginx-1.24.0.tar.gz https://nginx.org/download/nginx-1.24.0.tar.gz
//解压文件
tar -zxvf nginx-1.24.0.tar.gz
解压文件后进入nginx-1.24.0,通过./configure命令查看我们的Linux是否有nginx运行的环境。
运行完提醒我们缺少了PCRE的库,那我们通过yum安装就行:
//运行下载pcre库
yum install pcre pcre-devel -y
下载完后再次执行./configure,如果还有缺少的包那么继续下载安装即可,直到以下画面:
这里说OpenSSL未使用到,为了之后配置不出问题,我们可以一并安装好这个库
yum install openssl-devel -y
安装完后,需要执行下面的命令来开启OpenSSL库,获取http支持
./configure --with-http_ssl_module --with-http_v2_module --with-stream
执行完如下:
最后,进行编译
make
make install
编译完成我们查看一下nginx的二进制文件是否可执行:
绿色说明可执行,我们的nginx的环境就准备好了,但是这时我们在命令号直接输入nginx是否可以运行呢?那当然是不行的,因为我们还没有配置好环境变量,为了能够全局访问,我们还需要为nginx配置一下环境变量:
//首先进入profile
vi /etc/profile
//最后一行插入
export PATH=$PATH:/usr/local/nginx/sbin
//配置文件更新
source /etc/profile
重启nginx,并查看线程,可以看到80端口已被nginx占用,说明nginx已启动
- 部署
首先build前端项目,然后上传到我们的服务器,然后需要修改nginx的配置文件,配置文件的位置在./configure后找,如下图
//将nobody改成root,否则访问网页无权限
user root;
//root后面是上传的build文件位置
location / {
root /root/services/user-center-front;
index index.html index.htm;
}
//注意,修改完nginx的配置文件,一定要重新加载
nginx -s reload
到此,前端就部署完毕了,我们可以在网页上进行访问。
五、后端部署
- 环境准备
首先需要java,其次需要打包工具(maven),安装java,直接用yum安装,maven的下载方式同nginx相同,可在上方做参考
//java
yum -y install java-1.8.0-openjdk*
//maven
curl -o apache-maven-3.8.8-bin-tar.gz https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
//解压
tar -zvxf apache-maven-3.8.8-bin.tar.gz
//配置环境变量
cd apache-maven-3.8.8/bin
pwd
//在最后一行加上
:/services/apache-maven-3.8.8/bin
//检查maven
mvn -v
当然,大家知道我们下载的maven直接用,下载源是国外的中央仓库,大家可以自行搜索为maven换源,加快打包速度。
2. 部署
上传项目到服务器,进入项目内,把我们的代码打包成可执行的jar包:
mvn package -DskipTests
进入target,可以看到里面有jar包文件,修改jar包文件的访问权限
chmod a+x [jar包名]
执行jar包
//前台运行
java -jar[jar包名] --spring.profiles.active=prod
//后台运行
nohup java -jar[jar包名] --spring.profiles.active=prod &
后端运行成功,部署完毕
六、总结
到此,前后端的部署就完毕了,后续的调试就不再赘述。可以看到,这是一篇原生的前后端部署方式,较于其他方式,会显得比较复杂,但是,这种原生的方式是其他部署方式的根本,作为初学者还是有必要弄清楚流程的!! 其他方式都是在此基础上做了一些自动配置,加快了部署,也更加的方便,了解原生方式后,当然可以选择现成的便捷方式来提高效率了。
注:本篇为自主学习笔记