前后端分离项目的部署

  •  基于springboot+vue 的前后端分离项目

工具:docker

注意:相关映射端口需在云服务器安全组开放

思路:前端通过nginx反向代理进行部署,后端直接启动jar包

  • jdk的安装
  1. 官网下载linux对应版本压缩包
  2.   Oracle_java
  3. 使用xftp将压缩包上传到云服务器上
  4. 解压缩
    [root@localhost local]# tar -zxvf jdk-8u181-linux-x64.tar.gz

  5. 和windows下的一样,需要配置环境变量,进入相关文件
    [root@localhost local]# vim /etc/profile

  6. 按i进行修改,添加如下代码
    export JAVA_HOME=/usr/local/jdk1.8.0_181  #jdk安装目录
     
    export JRE_HOME=${JAVA_HOME}/jre
     
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
     
    export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
     
    export PATH=$PATH:${JAVA_PATH}

  7. 按esc 输入   :wq  进行保存并退出
  8. 通过命令,让刚才配置的文件生效
    [root@localhost local]# source /etc/profile

  9. 测试是否成功 java -version

安装docker

//首先删除原本的docker,没有的话就不删除
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
    
//安装依赖源
    yum install -y yum-utils
//配置镜像源,这里使用的是国外的,也可用阿里云等等
    yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

//安装docker
yum install docker-ce docker-ce-cli containerd.io   (默认最新版)
    
//启动docker
systemctl start docker
    
//测试是否安装成功
docker version

 接下来根据项目需求,拉取相关镜像进行部署

这里根据我本次所需的环境进行部署

所需 redis,mysql,nacos,nginx

redis安装

# 创建挂载文件夹
[root@ecs-2e99-0104593 redis]# clear
[root@ecs-2e99-0104593 redis]# cd ./redis
[root@ecs-2e99-0104593 redis]# mkdir conf
[root@ecs-2e99-0104593 redis]# mkdir data
[root@ecs-2e99-0104593 redis]# ls
conf data
[root@ecs-2e99-0104593 redis]#
# 新建redis.conf文件
[root@ecs-2e99-0104593 conf]# touch redis.conf
# 安装并运行redis
docker pull redis
# 对于/usr/local/mydata/redis/data代表外部挂载的目录,需要使用pwd查看你自己的路径,然后替
换为你自己的data、conf目录路径
docker run -p 6379:6379 --name redis -v /usr/local/mydata/redis/data:/data -v /usr/local/mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf

nginx的安装

# 创建挂载文件夹
[root@ecs-2e99-0104593 mydata]# ls
jdk mongo redis
[root@ecs-2e99-0104593 mydata]# mkdir nginx
[root@ecs-2e99-0104593 mydata]# cd ./nginx/
[root@ecs-2e99-0104593 nginx]# ls
[root@ecs-2e99-0104593 nginx]# mkdir html
[root@ecs-2e99-0104593 nginx]# mkdir conf
[root@ecs-2e99-0104593 nginx]# mkdir logs
[root@ecs-2e99-0104593 nginx]#
# 下载并启动Nginx
docker run --name nginx -p 80:80 \
-v /usr/local/mydata/nginx/html:/usr/share/nginx/html \
-v /usr/local/mydata/nginx/logs:/var/log/nginx \
-v /usr/local/mydata/nginx/conf:/etc/nginx \
-d nginx
# 之后vue打包的文件直接放到html目录下即可

nginx的启动过程中可能会遇到挂载问题,主要是关于配置文件.conf的问题

docker logs nginx 查看日志解决具体问题,不行删除,重新拉取镜像

nacos的安装

nacos占用内存过大,服务器跑不起来或着卡死,所以通过-e 来进行配置,限制内存

# 拉取镜像
docker pull nacos/nacos-server:2.0.2
#  单机Nacos配置
docker run -d  \
-e JVM_XMS=128m \
-e JVM_XMX=128m \
--name nacos-2.0.2-limit -p 8848:8848 \
--env MODE=standalone \
--env NACOS_SERVER_IP=127.0.0.1 \
-v /mydata/nacos/logs:/home/nacos/logs \
--restart=always \
nacos/nacos-server:2.0.2

mysql的安装

#同样采用挂载卷的方式启动容器,不然会删除容器造成数据丢失
#可参考dockerhub官网
#第一步,先拉取镜像
docker pull mysql:tag   (自己选择所需版本)
#启动容器
docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql

#-d:后台启动
#-p:映射端口
#-v:挂载卷
#-e:相关配置环境,这里设置密码

前端项目打包

//打包项目

npm run build
 //生成dist目录,将该目录文件全部放到nginx外部挂载的html目录
    //启动nginx
    docker start nginx
    //重启nginx
    docker restart nginx
    //外网访问测试
    ip:映射端口/dist
       

后端项目打包,上传到服务器

 //使用docker开启相关容器,如redis,mysql,nacos
//将jar包上传至服务器,放在自己的目录下就行
//后台方式运行jar包
nohup java -jar admin.jar -Xmx256M > ADMIN_LOG.log &

nohup java -jar gateway-0.0.1-SNAPSHOT.jar -Xmx128M  >GATE_WAY.log &
//查看是否运行成功
ps -ef | grep java
//查看运行日志,在当前目录下的nohup.out文件
cat nohup.out

至此,部署完成,访问外网进行测试。

你可能感兴趣的:(java,spring,boot,docker)