当前位置:   article > 正文

云服务器 ECS 部署前后端分离项目(若依)保姆级详细教程_若依前后端分离版,部署到云服务器中

若依前后端分离版,部署到云服务器中

目录

准备工作

将安全组必要端口暴露

​编辑确认弹性公网ip和主私网ip存在

部署后端:

1.Linux操作:

1.1.关闭防火墙

1.2.搭建gcc环境

1.3.安装需要的软件包

1.4.装镜像仓库

1.5.新yum软件包索引

1.6.安装docker引擎

1.7.启动docker

1.8.拉取openjdk8

1.9.拉取镜像mysql:8.0.19、拉取镜像redis:6.0.8 、拉取镜像nginx:1.18.0

1.10.查看镜像是否存在

1.11.启动镜像

1.12.复制若依必要sql文件

1.12.1.将他需要的sql文件复制到/myapp/mysql中

1.12.2进入mysql容器

2.后端项目配置修改与打包

2.1修改数据库配置

2.2打包之后复制发到linux上

2.3.构建镜像

2.4.启动镜像

2.5.如有报错可以查看日志进行百度

部署前端

1.Nginx镜像部署

1.1.创建nginx工作目录

1.2.启动nginx容器,如果这个镜像本机中没有,会自动下载镜,我这下载是的1.18版本

1.3.复制容器中配置文件目录到本机中,然后删除该容器

1.4.启动新的nginx容器

1.5.查看容器后,访问服务器ip地址

2.前端项目配置 代理端口

3.在前端项目中打开终端

4.在终端执行打包命令

5.将 前端项目 拷贝到Linux服务器中nginx容器对应的html目录下

6.访问公网IP


准备工作

将安全组必要端口暴露

确认弹性公网ip和主私网ip存在

部署后端:

1.Linux操作:

1.1.关闭防火墙

systemctl disable firewalld

1.2.搭建gcc环境

  1. yum -y install gcc
  2. yum -y install gcc-c++

1.3.安装需要的软件包

yum install -y yum-utils

1.4.装镜像仓库

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.5.新yum软件包索引

yum makecache fast

1.6.安装docker引擎

yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

1.7.启动docker

systemctl start docker

1.8.拉取openjdk8

docker官网弃用了Java镜像,需要用其他的镜像替代

docker pull openjdk:8

1.9.拉取镜像mysql:8.0.19、拉取镜像redis:6.0.8 、拉取镜像nginx:1.18.0

  1. docker pull mysql:8.0.19
  2. docker pull redis:6.0.8
  3. docker pull nginx:1.18.0

1.10.查看镜像是否存在

docker images

1.11.启动镜像

docker run --name mysql -v /myapp/mysql:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql:8.0.19

MYSQL_ROOT_PASSWORD:是密码不要设置123456 mysql8.x版本后续会报错设置password就行

docker run -d --name redis -p 6379:6379 redis:6.0.8 --requirepass "123456"

Redis密码:123456

1.12.复制若依必要sql文件

1.12.1.将他需要的sql文件复制到/myapp/mysql中
  1. cd /
  2. cd myapp/
  3. cd mysql/

1.12.2进入mysql容器
  1. docker ps #查看mysql容器id
  2. docker exec -it [容器ID] /bin/bash

mysql -u root -p 

接下里输入刚刚run 后的 密码

  1. create database ry; #创建数据库ry
  2. show databases; #查看是否存在
  3. USE ry; #进入ry
  4. source /var/lib/mysql/xxxx.sql; #执行了ry的sql

对了你很疑惑为什么是var/lib/mysql下的sql对吧,自行百度 后面的xxx就是你刚刚复制到/myapp/mysql下的sql文件名字

  1. show tables; 查看下表是否存在
  2. exit; #退出mysql
  3. exit; #退出mysql容器

2.后端项目配置修改与打包

将后端项目通过idea打开,Maven不报错的前提下执行以下操作

2.1修改数据库配置

文件路径改为Linux配置

端口号改为 :port: 8085


redis地址改为ECS主私网IP地址详细见1.2.确认弹性公网ip和主私网ip存在,密码设置为刚刚run后的密码详细见2.11.启动镜像

修改mysql地址为主私网ip 以及名字、密码

2.2打包之后复制发到linux上

预防万一先clean下

package打包

复制发到linux上,放到哪里都行 我放在/usr/loacl目录下

在同级目录下创建Dockerfile文件

  1. #基础镜像使用openjdk:8
  2. FROM openjdk:8
  3. #作者
  4. MAINTAINER zzz
  5. # VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp
  6. VOLUME /tmp
  7. # 将jar包添加到容器中并更名
  8. ADD ruoyi-admin.jar app.jar
  9. # 运行jar包
  10. RUN bash -c 'touch /app.jar'
  11. # 为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/./urandom” 作为 Entropy Source
  12. ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
  13. #ENTRYPOINT ["nohup","java","-jar","/data/cat/ruoyi-admin.jar","&"]
  14. #暴露8085端口
  15. EXPOSE 8085

2.3.构建镜像

docker build -t ry:1.0 .

2.4.启动镜像

docker  run -d --name ry -p 8085:8085 ry:1.0

公网Ip访问8085端口

2.5.如有报错可以查看日志进行百度

  1. docker ps -a #查看运行时容器信息
  2. docker logs -f -t --tail 1000 [容器Id]

部署前端

1.Nginx镜像部署

因为需要nginx的初始化配置文件保证不出错, 所以我直接启动一个nginx容器,把配置文件拉取下来,然后删除容器

1.1.创建nginx工作目录

  1. #需要一个conf文件存放目录,和html文件目录,及日志存放目录
  2. mkdir -p /data/applications/nginx/conf
  3. mkdir -p /data/applications/nginx/html
  4. mkdir -p /data/logs

1.2.启动nginx容器,如果这个镜像本机中没有,会自动下载镜,我这下载是的1.18版本

docker run --name nginx -p 80:80 -d nginx:1.18.0

1.3.复制容器中配置文件目录到本机中,然后删除该容器

  1. # 复制配置
  2. docker cp nginx:/etc/nginx/nginx.conf /data/applications/nginx/conf/nginx.conf
  3. docker cp nginx:/etc/nginx/conf.d /data/applications/nginx/conf/conf.d
  4. docker cp nginx:/usr/share/nginx/html /data/applications/nginx/
  5. #先用 [docker ps – a] 命令 找到对应容器ID
  6. #才可以删除容器
  7. docker rm -f [容器ID]

1.4.启动新的nginx容器

docker run -d -p 80:80 -p 443:443 --name nginx --restart=always --network-alias nginx -e TZ="Asia/Shanghai" -v /data/applications/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/applications/nginx/conf/conf.d:/etc/nginx/conf.d -v /data/logs/nginx:/var/log/nginx -v /data/applications/nginx/html:/usr/share/nginx/html -v /data/applications/nginx/cert:/etc/nginx/cert nginx:1.18.0

docker run命令用于运行Nginx容器,并指定了一系列参数来配置容器。

以下是每个参数的解释:

-d: 后台运行容器。
-p 80:80: 将主机的80端口映射到容器的80端口,允许通过主机的80端口访问Nginx服务。
-p 443:443: 将主机的443端口映射到容器的443端口,用于HTTPS访问。
--name nginx: 为容器指定名称为nginx。
--restart=always: 设置容器在退出时总是重新启动。
--network-alias nginx: 在指定的网络中为容器设置别名为nginx。
-e TZ="Asia/Shanghai": 设置容器的时区为亚洲/上海。
-v /data/applications/nginx/conf/nginx.conf:/etc/nginx/nginx.conf: 将主机上的Nginx配置文件挂载到容器内部的相应路径。
-v /data/applications/nginx/conf/conf.d:/etc/nginx/conf.d: 将主机上的Nginx额外配置文件(例如虚拟主机配置)挂载到容器内部的相应路径。
-v /data/logs/nginx:/var/log/nginx: 将主机上的Nginx日志目录挂载到容器内部的相应路径。
-v /data/applications/nginx/html:/usr/share/nginx/html: 将主机上的Nginx网页内容挂载到容器内部的相应路径。
-v /data/applications/nginx/cert:/etc/nginx/cert: 将主机上的SSL证书挂载到容器内部的相应路径。
nginx:1.18.0: 使用Nginx 1.18.0版本的官方镜像作为基础镜像。
这个命令创建了一个Nginx容器,配置了端口映射、文件挂载以及其他相关设置。请确保你的主机上已经创建了相应的目录,并且Nginx配置文件等内容已经准备好。

1.5.查看容器后,访问服务器ip地址

  1. # 查看nginx容器是否启动成功
  2. docker ps -a

之后浏览器访问80端口

2.前端项目配置 代理端口

设置后端内网ip 、8085端口

3.在前端项目中打开终端

npm install --registry=https://registry.npmmirror.com

4.在终端执行打包命令

打包命令根据node版本不同可能会出错,执行前先执行

$env:NODE_OPTIONS="--openssl-legacy-provider"

之后打包

npm run build:prod

打包成功后会在同级别目录下多出个dist目录 将目录下所有文件复制到nginx目录下

5.将 前端项目 拷贝到Linux服务器中nginx容器对应的html目录下

目录下原文件都删除

cd /data/applications/nginx/html

6.访问公网IP

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号