Day12_Ruoyi_vue_pro
Ruoyi项目后端部署
部署前规划
| 主机IP | 角色 | 操作系统 | 软件版本 | 硬件配置 |
|---|---|---|---|---|
| 192.168.146.133 | build构建机 | Rocky Linux 9.6 | maven:3.9.11,jdk1.8.202,nodejs:16.20.2 | 4核8G |
| 192.168.146.130:3306 | mysql数据库 | Rocky Linux 9.6 | mysql 8.0.44 | 1核2G |
| 192.168.146.134:80 | nginx服务器 | Rocky Linux 9.6 | nginx 1.20.1 | 1核2G |
| 192.168.146.135:6379 | Redis数据库 | Rocky Linux 9.6 | redis 6.2.14 | 1核2G |
| 192.168.146.136:48080 | Java后端 | Rocky Linux 9.6 | JDK 1.8.202 | 1核2G |
整体流程说明
- 构建机git clone后端源码
- 安装mysql,并创建数据库
- 安装redis
- 编译源码,形成jar包
- 构建前端代码
- 将jar包传到java后端服务器,构建好的前端代码传输到nginx服务器
- 编写nginx配置文件
- 运行jar包,浏览器访问
详细说明
在做之前确保各个服务器之间的端口能互相通信,使用telnet ip port进行测试
构建机git clone后端源码
1 | git clone https://gitee.com/zhijiantianya/ruoyi-vue-pro.git |
修改配置文件,/var/www/ruoyi-vue-pro/yudao-server/src/main/resources/application-local.yaml,修改里面的jdbc中mysql的IP和数据库名,用户名和密码,以及下面redis的IP和密码
编译打包源码,形成jar包,jar包的路径在源码下yudao-server/target/yudao-server.jar
现在构建机上运行jar包测试,看数据库连接有没有问题,java -jar ruoyi-vue-pro/yudao-server/target/yudao-server.jar。如果没有报错就可以了
这样就可以scp到java后端上了
安装mysql,并创建数据库
直接编写脚本进行安装
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
dnf install -y vim bash-completion
if [ $? eq 0 ];then
echo 'bash-completion安装完成'
fi
rpm -ivh https://repo.mysql.com//mysql84-community-release-el9-2.noarch.rpm
yum makecache
yum install -y mysql-community-server
systemctl enable --now mysqld
systemctl status mysqld
sleep 5
PASSWD=$(grep localhost /var/log/mysqld.log | awk '{print $13}')
echo $PASSWD
if [ -f /etc/my.cnf-bak ];then
sleep 5
echo '/etc/my.cnf-bak已存在'
else
cp /etc/my.cnf{,-bak}
cat >> /etc/my.cnf << EOF
validate_password.length=4
validate_password.policy=LOW
EOF
fi
systemctl restart mysqld
mysql -uroot -p"${PASSWD}" -e "set password='123456';" --connect-expired-password
mysql -uroot -p123456 -e "show databases;"在我实际操作过程中,mysql的后端server代码没有写,导致没装后端,启动不起来,然后又执行了其他代码,这让我光处理mysql服务就处理了半天
在我手动安装了mysqld server服务后,尝试启动,启动不了,说我配置文件有错,/etc/my.cnf,通过查询,知道该文件要[mysqld]打头然后指定datadir到mysql路径/var/lib/mysql
解决了配置文件报错的问题后,还是启动不了,搜过过后,说我没初始化,然后我使用‘musql –initialize –user=mysql’进行初始化,没成功,要删除rm -rf /var/lib/mysql/*
然后再次初始化成功了,然后启动,登录,可能是脚本有把mysql密码改了,试了半天的临时密码登不进去,用123456就进去了开通访问权限。我在构建机上telnet数据库的3306端口被拒绝,原因是mysql的默认禁止远程访问。我解决的方式是创建所有主机访问权限
1 | create user 'root'@'%' identified by '123456'; |
后续看到了其他方法,在my.cnf配置文件内进行开启所有主机访问
1 | bind-address = 0.0.0.0 # 允许所有外部IP,或指定具体IP(如192.168.1.100) |
- 实际生产环境中建议制定数据库和更改用户名
安装redis
- 编写脚本安装
1 |
|
编译源码,形成jar包
- 在构建机上的项目根目录下执行编译jar包
mvn clean install package '-Dmaven.test.skip'=true - jar包测试, 看有没有报错,没报错就代表数据什么的都没问题
java -jar ruoyi-vue-pro/yudao-server/target/yudao-server.jar - 可以scp到java后端服务器上了
构建前端代码
前端代码之前有部署过,但因为这次是各个服务分离,所以需要更改前端配置文件,让他知道后端在那,需要改三个配置文件,都在前端根目录下
- vite.config.ts 将里面的一个true改为false
- .env.local和.env.prod , 将访问地址的localhost改为后端java地址,192.168.146.136
- 然后构建一下,将dist-prod目录传到nginx服务器
编写nginx配置文件
1 | server{ |
运行jar包,浏览器访问
在java服务器上运行jar包,java -jar yudao-server.jar
localhost,私网,公网之间的关系
- localhost是本地回环口地址,127.0.0.1,只用来本机测试,无法与私网,公网连接
- 私网是主机本身的局域网,在ecs中属于一个vpc组,同一个vpc的私网可以通信
- 公网是大家都可以访问
- 正常情况下,只要浏览器输入的公网,服务器上配置的ip是私网还是公网,都可以访问,配置私网的时候,访问公网会通过NAT将流量传到私网






