如何将前后端分离的微服务项目部署到云服务器

参照:【还不会部署微服务项目?保姆级教程来啦!】https://www.bilibili.com/video/BV1Cp4y1F7eA?vd_source=4a277564d007b57c819d7890793e16c7
链接: bilibili视频




提示:以下是本篇文章正文内容,下面案例可供参考

一、购买云服务器

购买的阿里云的云服务器 本次购买的是阿里云的乌班图的操作系统 4核8G 按量付费
在这里插入图片描述

二、安装docker-compose

地址:https://docs.docker.com/engine/install/ubuntu/
安装docker

在这里插入图片描述
安装docker compose
https://docs.docker.com/compose/install/linux/
在这里插入图片描述

三、根据项目写docker文件

参照:【还不会部署微服务项目?保姆级教程来啦!】https://www.bilibili.com/video/BV1Cp4y1F7eA?vd_source=4a277564d007b57c819d7890793e16c7
链接: bilibili视频

视频中有详细的代码作用以及介绍

四、本地给后端项目打jar包

提示:视频中有两种方式,一种方式是先打好jar包后再将项目传上去,另一种是先传上去后再云服务器上再打jar包。我在实际部署过程中第二种方式一直失败,就采用了第一种方式
彻底清理旧构建产物,然后重新编译打包并安装到本地仓库,但跳过单元测试的执行。

mvn clean install -DskipTests

五、将项目上传到云服务器

IDEA工具操作方法如下:
在这里插入图片描述

在这里插入图片描述
连接成功后,配置映射(将本地文件存储到云服务器的哪个位置)
在这里插入图片描述
配置完成后上传项目
在这里插入图片描述
项目名右键上传到云服务器

六、启动并运行数据库、redis和naocs环境的Docker 容器服务

docker compose -f docker-compose.env.yml up

1.检查nacos启动(开启防火墙策略的8848端口)

http://公网ip:8848/nacos
账号:nacos 密码:nacos
访问后能运行表示nacos服务已经启动成功

2.检查mysql是否运行(开启防火墙策略的3306端口)

可视化软件连接MySQL数据库 常规
主机:公网IP
用户名:数据库用户名root
密码:数据库密码123456
连接云服务器后可以查看数据的图表以及相关内容
在这里插入图片描述

都启动成功后改为后台运行

docker compose -f docker-compose.env.yml up -d

七、启动并运行所有微服务的Docker 容器服务

docker compose -f docker-compose.service.yml up

启动后测试:
我的项目的请求如下:
http://8.145.54.115:8220/admin/core/lxbBlog/list/1/10?keyword=
在这里插入图片描述
查看是否有数据响应:(开启防火墙的8220端口)
在这里插入图片描述

后端部署成功


八、前端部署

1.修改.env.production

公网ip+端口号

ENV = 'production'
VUE_APP_BASE_API = 'http://8.160.171.55:8220'

2.打包前端项目

将vscode中的前端项目右键在集成终端打开后输入以下命令:

npm run build:prod

3.将前端项目上传到云服务器

/usr/share/nginx/html或自定义目录
存放在:/usr/share/nginx/html/dist

4.安装nginx

在云服务器上输入以下命令可以进行nginx安装

sudo apt update
sudo apt install nginx

5.修改/etc/nginx/sites-available/default.conf

防火墙开启listen的端口
修改内容:

server {
    listen 9527;
    server_name 8.160.171.55; # 改为你的域名或IP
    root /usr/share/nginx/html/dist;     # 改为你的前端文件目录
    index index.html;
    location / {
        try_files $uri $uri/ /index.html;
    }
}

6.启动nginx

sudo nginx -t && sudo systemctl reload nginx

九、访问成功

访问http://公网ip:9527/后出现画面表示访问成功

更多推荐