实验环境

192.168.10.43和192.168.10.44内存不能小于4G
一、安装MySQL(192.168.10.46)
1、安装MySQL依赖库
bash
dnf -y install ncurses-compat-libs
2、上传mysql-8.0.42-linux-glibc2.17-x86_64-minimal.tar.xz二进制包到/root目录,解压并移动到指定目录
bash
tar xf mysql-8.0.42-linux-glibc2.17-x86_64-minimal.tar.xz
mv mysql-8.0.42-linux-glibc2.17-x86_64-minimal /usr/local/mysql
3、设置环境变量
bash
echo 'export MYSQL_HOME=/usr/local/mysql' >> /etc/profile
echo 'export PATH=$MYSQL_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
4、创建MySQL用户和数据目录
bash
useradd -r -s /bin/false -M mysql
mkdir -p /usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql/
5、创建MySQL配置文件
bash
cat > /etc/my.cnf << EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
pid-file=/usr/local/mysql/data/mysqld.pid
log-error=/usr/local/mysql/data/mysql.err
socket=/tmp/mysql.sock
EOF
6、初始化MySQL数据库
bash
mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
7、创建systemctl管理文件
bash
cat > /usr/lib/systemd/system/mysqld.service << EOF
[Unit]
Description=MySQL Server
After=network.target
[Service]
Type=forking
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --daemonize
ExecStop=/usr/local/mysql/bin/mysqladmin shutdown
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
8、启动MySQL服务
bash
systemctl daemon-reload
systemctl enable --now mysqld
9、修改MySQL的root用户密码
bash
grep password /usr/local/mysql/data/mysql.err

bash
mysql -uroot -p
sql
alter user 'root'@'localhost' identified by '123456';
二、安装redis(192.168.10.45)
1、下载源码包
bash
wget https://download.redis.io/releases/redis-6.0.20.tar.gz
2、编译安装到指定目录
bash
tar xf redis-6.0.20.tar.gz
cd redis-6.0.20/
make PREFIX=/usr/local/redis -j$(nproc)
sudo make PREFIX=/usr/local/redis install
3、设置环境变量
bash
echo 'export REDIS_HOME=/usr/local/redis' >> /etc/profile
echo 'export PATH=$REDIS_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
4、创建redis用户和专用目录
bash
useradd -r -s /bin/false -M redis
mkdir -p /usr/local/redis/{conf,data,log}
cp /root/redis-6.0.20/redis.conf /usr/local/redis/conf/
chown -R redis:redis /usr/local/redis
5、修改配置文件
bash
vim /usr/local/redis/conf/redis.conf
修改:



6、创建systemctl管理文件
bash
cat > /usr/lib/systemd/system/redis.service << EOF
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
Type=forking
User=redis
Group=redis
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf
ExecStop=/usr/local/redis/bin/redis-cli shutdown
Restart=on-failure
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
7、启动redis服务
bash
systemctl daemon-reload
systemctl enable --now redis
三、安装WEB(192.168.10.42)
1、下载nginx源码包
bash
wget https://nginx.org/download/nginx-1.28.0.tar.gz
2、创建nginx用户
bash
useradd -r -s /bin/false -M nginx
3、编译安装nginx
安装依赖
bash
dnf -y install openssl-devel zlib-devel pcre-devel
tar xf nginx-1.28.0.tar.gz
cd nginx-1.28.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_flv_module --with-http_mp4_module --with-http_stub_status_module
make -j$(nproc) && make install
4、创建systemctl管理文件
bash
cat > /usr/lib/systemd/system/nginx.service << EOF
[Unit]
Description=Nginx server daemon
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecStop=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf -s stop
ExecReload=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf -s reload
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
5、启动nginx服务
bash
systemctl daemon-reload
systemctl enable --now nginx
四、准备ruoyi源代码编译环境(192.168.10.47)
1、安装Java1.8
rocky9.5自带Java1.8
编译源代码需要安装java-1.8-devel
bash
dnf -y install java-1.8.0-openjdk-devel
java -version

2、安装maven3.8
(1)下载maven二进制包,解压并移动到指定目录
bash
wget https://mirrors.aliyun.com/apache/maven/maven-3/3.8.9/binaries/apache-maven-3.8.9-bin.tar.gz
tar xf apache-maven-3.8.9-bin.tar.gz
mv apache-maven-3.8.9 /usr/local/maven
(2)设置环境变量
bash
echo 'export MAVEN_HOME=/usr/local/maven' >> /etc/profile
echo 'export PATH=$MAVEN_HOME/bin:$PATH' >> /etc/profile
source /etc/profile
(3)查看maven版本
bash
mvn -version

(4)配置maven
bash
vim /usr/local/maven/conf/settings.xml
添加修改:

bash
<id>aliyunmaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central</url>

bash
<profile>
<id>java8</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<maven.compiler.release>8</maven.compiler.release>
</properties>
</profile>

(5)查看系统环境信息和 Java 系统属性
bash
mvn help:system
显示下载地址为阿里源即为正确
3、安装nodejs
(1)下载nodejs二进制包,解压并移动到指定目录
bash
wget https://nodejs.org/download/release/v22.15.1/node-v22.15.1-linux-x64.tar.xz
tar xf node-v22.15.1-linux-x64.tar.xz
mv node-v22.15.1-linux-x64 /usr/local/nodejs
(2)设置环境变量
bash
vim /etc/profile
添加修改:
bash
export NODEJS_HOME=/usr/local/nodejs
export PATH=$MAVEN_HOME/bin:$NODEJS_HOME/bin:$PATH

bash
source /etc/profile
(3)查看nodejs版本
bash
node -v

bash
npm -v

(4)修改npm镜像源
查看当前 npm 的镜像源
bash
npm get config registry

修改为淘宝镜像源
bash
npm config set registry https://registry.npmmirror.com/
npm get config registry

五、部署治理层
1、安装jdk1.8(192.168.10.43)
rocky9.5自带java1.8
需要安装java1.8的开发
bash
dnf -y install java-1.8.0-openjdk-devel
java -version

2、部署单机nacos(服务注册中心/配置管理中心)
Nacos (Dynamic Naming and Configuration Service)是阿里巴巴开源的一款集 服务发现 、配置管理 和 服务治理 于一体的平台,适用于云原生和微服务架构。
(1)上传nacos-server-2.5.1.zip包到/root目录,解压并移动到指定目录(192.168.10.43)
bash
unzip nacos-server-2.5.1.zip
mv nacos /usr/local/
(2)拷贝nacos数据库文件到MySQL服务器(192.168.10.43)
bash
scp /usr/local/nacos/conf/mysql-schema.sql root@192.168.10.46:/root
(3)创建用户和数据库并导入nacos数据库文件(192.168.10.46)
登录MySQL
sql
create user nacos@'192.168.10.%' identified by '123456';
grant all on nacos.* to nacos@'192.168.10.%';
create database nacos charset utf8mb4;
bash
mysql -unacos -p123456 -h 192.168.10.46 nacos < /root/mysql-schema.sql
验证
bash
mysql -unacos -p123456 -h 192.168.10.46
sql
show databases;
use nacos;
show tables;
(4)修改nacos配置文件(192.168.10.43)
bash
vim /usr/local/nacos/conf/application.properties
修改:



(5)启动nacos服务(192.168.10.43)
单机启动nacos
bash
sh /usr/local/nacos/bin/startup.sh -m standalone

监控日志
bash
tail -f /usr/local/nacos/logs/start.out

(6)访问nacos
使用浏览器访问192.168.10.43:8848/nacos
登录需要输入用户和密码时,均为nacos

3、安装sentinel(熔断服务)(192.168.10.43)
Sentinel (哨兵)是阿里巴巴开源的 流量控制 、熔断降级 和系统保护 的轻量级组件,专门用于解决微服务架构中的 高可用性 和 稳定性 问题。
(1)上传sentinel-dashboard-1.8.8.jar jar包到/root目录
(2)启动sentinel服务
bash
nohup java -Dserver.port=8718 -Dcsp.sentinel.dashboard.server=localhost:8718 -Dproject.name=sentinel-dashboard -Dcsp.sentinel.api.port.port=8719 -jar sentinel-dashboard-1.8.8.jar &> /var/log/sentinel.log &
ss -anplt | grep 8718

(3)访问sentinel
使用浏览器访问192.168.10.43:8718
登录用户和密码均为sentinel


4、部署skywalking(链路监控服务)(192.168.10.43)
Apache SkyWalking 是一款开源的 应用性能监控(APM)和分布式追踪系统,专为微服务、云原生和容器化架构设计,帮助开发者快速定位性能瓶颈和故障根因。
官方下载地址:https://archive.apache.org/dist/skywalking/
第三方下载地址(下载速度更快):https://linux.oldxu.net/apache-skywalking-apm-8.8.1.tar.gz
(1)上传apache-skywalking-apm-8.8.1.tar.gz包到/root目录,解压并移动到指定目录
bash
tar xf apache-skywalking-apm-8.8.1.tar.gz
mv apache-skywalking-apm-bin/ /usr/local/
(2)启动skywalking服务
bash
sh /usr/local/apache-skywalking-apm-bin/bin/startup.sh

bash
ss -anplt | grep java

(3)访问skywalking
使用浏览器访问192.168.10.43:8080

六、部署微服务
1、克隆ruoyi-cloud源代码(192.168.10.47)
bash
git clone https://gitee.com/y_project/RuoYi-Cloud.git
2、导入ruoyi相关库和表
(1)拷贝源代码中库文件到mysql服务器(192.168.10.47)
bash
scp -r /root/RuoYi-Cloud/sql/ root@192.168.10.46:/root/
(2)创建数据库和用户并导入数据(192.168.10.46)
登录MySQL
sql
create database `ry-cloud` charset utf8;
create database `ry-config` charset utf8;
create user root@'192.168.10.%' identified by '123456';
grant all on *.* to root@'192.168.10.%';
bash
mysql -uroot -p123456 -h 192.168.10.46 ry-cloud < /root/sql/quartz.sql
mysql -uroot -p123456 -h 192.168.10.46 ry-cloud < /root/sql/ry_20250523.sql
mysql -uroot -p123456 -h 192.168.10.46 ry-config < /root/sql/ry_config_20250224.sql
3、配置nacos(192.168.10.43)
(1)修改配置文件
bash
vim /usr/local/nacos/conf/application.properties
修改:

(2)重启nacos服务
bash
sh /usr/local/nacos/bin/shutdown.sh
sh /usr/local/nacos/bin/startup.sh -m standalone
监控日志
bash
tail -f /usr/local/nacos/logs/start.out

(3)访问nacos
使用浏览器访问192.168.10.43:8848/nacos

4、修改ruoyi源代码(192.168.10.47)
bash
vim /root/RuoYi-Cloud/ruoyi-auth/src/main/resources/bootstrap.yml
修改:

bash
vim /root/RuoYi-Cloud/ruoyi-gateway/src/main/resources/bootstrap.yml
修改:
bash
vim /root/RuoYi-Cloud/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml
修改:

bash
vim /root/RuoYi-Cloud/ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml
修改:

bash
vim /root/RuoYi-Cloud/ruoyi-modules/ruoyi-job/src/main/resources/bootstrap.yml
修改:

bash
vim /root/RuoYi-Cloud/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
修改:

bash
vim /root/RuoYi-Cloud/ruoyi-visual/ruoyi-monitor/src/main/resources/bootstrap.yml
修改:

5、编译ruoyi源代码
bash
cd /root/RuoYi-Cloud/
mvn clean package

6、拷贝所有jar包到service(192.168.10.44)服务器
(1)创建jar包存放目录(192.168.10.44)
bash
mkdir /ruoyi-service
(2)拷贝jar包(192.168.10.47)
bash
find /root/RuoYi-Cloud/ -name *.jar -exec scp {} 192.168.10.44:/ruoyi-service/ \;
7、使用nacos修改相应服务的yaml文件
(1)修改ruoyi-system-dev.yml

删除添加:
spring配置
spring:
redis:
host: 192.168.10.45
port: 6379
password:
cloud:
sentinel:
eager: true
transport:
dashboard: 192.168.10.43:8718
datasource:
druid:
stat-view-servlet:
enabled: true
loginUsername: admin
loginPassword: 123456
dynamic:
druid:
initial-size: 5
min-idle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
filters: stat,slf4j
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
datasource:
主库数据源
master:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://**192.168.10.46:**3306/ry-cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: 123456
从库数据源
slave:
username:
password:
url:
driver-class-name:
seata: true # 开启seata代理,开启后默认每个数据源都代理,如果某个不需要代理可单独关闭
seata配置
seata:
默认关闭,如需启用spring.datasource.dynami.seata需要同时开启
enabled: false
Seata 应用编号,默认为 ${spring.application.name}
application-id: ${spring.application.name}
Seata 事务组编号,用于 TC 集群名
tx-service-group: ${spring.application.name}-group
关闭自动代理
enable-auto-data-source-proxy: false
服务配置项
service:
虚拟组和分组的映射
vgroup-mapping:
ruoyi-system-group: default
config:
type: nacos
nacos:
serverAddr: 127.0.0.1:8848
group: SEATA_GROUP
namespace:
registry:
type: nacos
nacos:
application: seata-server
server-addr: 127.0.0.1:8848
namespace:
mybatis配置
mybatis:
搜索指定包别名
typeAliasesPackage: com.ruoyi.system
配置mapper的扫描,找到所有的mapper.xml映射文件
mapperLocations: classpath:mapper/**/*.xml
swagger配置
swagger:
title: 系统模块接口文档
license: Powered By ruoyi
licenseUrl: https://ruoyi.vip

(2)修改ruoyi-auth-dev.yml

修改添加:
spring:
redis:
host: 192.168.10.45
port: 6379
password:
cloud:
sentinel:
eager: true
transport:
dashboard: 192.168.10.43:8718

(3)修改ruoyi-gateway-dev.yml

修改:

(4)修改ruoyi-monitor-dev.yml


8、部署skywalking代理(192.168.10.44)
Apache SkyWalking Java Agent 是 SkyWalking APM(应用性能监控)系统的 Java 探针(Agent) ,用于 无侵入式 采集 Java 应用的性能数据(如调用链路、JVM 指标、SQL 执行情况等),并将数据上报至 SkyWalking OAP 服务器进行分析和可视化展示。
官方下载地址:https://archive.apache.org/dist/skywalking/java-agent/
第三方下载地址(下载速度更快):https://linux.oldxu.net/apache-skywalking-java-agent-8.8.0.tgz
上传apache-skywalking-java-agent-8.8.0.tgz包到/root目录,解压并移动到指定目录
bash
tar xf apache-skywalking-java-agent-8.8.0.tgz
mv skywalking-agent/ /usr/local/
9、启动服务(192.168.10.44)
(1)启动ruoyi-system(ruoyi系统模块)服务
bash
nohup java -javaagent:/usr/local/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=ruoyi-system -Dskywalking.collector.backend_service=192.168.10.43:11800 -Dspring.profiles.active=dev -Dspring.cloud.nacos.config.file-extension=yml -Dspring.cloud.nacos.discovery.server-addr=192.168.10.43:8848 -Dspring.cloud.nacos.config.server-addr=192.168.10.43:8848 -jar /ruoyi-service/ruoyi-modules-system.jar &>/var/log/system.log &
字段解析:
- 核心命令
|----------------------------------------------|---------------------------------------|
| nohup | 忽略挂断信号,确保终端关闭后进程仍运行 |
| &>/var/log/system.log | 将标准输出和错误输出重定向到 /var/log/system.log 文件 |
| & | 在后台运行进程 |
| -jar /ruoyi-service/ruoyi-modules-system.jar | 指定启动的可执行 JAR 文件 |
- Java Agent 参数(SkyWalking 监控)
|-------------------------------------------------------------|-------------------------------|
| 参数 | 说明 |
| -javaagent:/usr/local/skywalking-agent/skywalking-agent.jar | 挂载 SkyWalking Agent,实现无侵入式监控 |
| -Dskywalking.agent.service_name=ruoyi-system | 指定服务名(在 SkyWalking UI 中显示) |
| -Dskywalking.collector.backend_service=192.168.10.43:11800 | SkyWalking OAP 服务器地址,用于接收监控数据 |
- 应用配置参数
|---------------------------------------------------------------|------------------------------------|
| 参数 | 说明 |
| -Dspring.profiles.active=dev | 激活 dev 环境配置(如 application-dev.yml) |
| -Dspring.cloud.nacos.config.file-extension=yml | 指定 Nacos 配置中心的文件格式为 YAML |
| -Dspring.cloud.nacos.discovery.server-addr=192.168.10.43:8848 | Nacos 注册中心地址,用于服务注册与发现 |
| -Dspring.cloud.nacos.config.server-addr=192.168.10.43:8848 | Nacos 配置中心地址,用于动态获取配置(如数据库连接信息) |
监控日志
bash
tail -f /var/log/system.log

查看nacos服务列表

(2)启动ruoyi-auth(ruoyi认证服务)服务
bash
nohup java -javaagent:/usr/local/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=ruoyi-auth -Dskywalking.collector.backend_service=192.168.10.43:11800 -Dspring.profiles.active=dev -Dspring.cloud.nacos.config.file-extension=yml -Dspring.cloud.nacos.discovery.server-addr=192.168.10.43:8848 -Dspring.cloud.nacos.config.server-addr=192.168.10.43:8848 -jar /ruoyi-service/ruoyi-auth.jar &>/var/log/auth.log &
监控日志
bash
tail -f /var/log/auth.log

查看nacos服务列表

(3)启动ruoyi-gateway(ruoyi网关服务)服务
bash
nohup java -javaagent:/usr/local/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=ruoyi-gateway -Dskywalking.collector.backend_service=192.168.10.43:11800 -Dspring.profiles.active=dev -Dspring.cloud.nacos.config.file-extension=yml -Dspring.cloud.nacos.discovery.server-addr=192.168.10.43:8848 -Dspring.cloud.config.server-addr=192.168.10.43:8848 -jar /ruoyi-service/ruoyi-gateway.jar &>/var/log/gateway.log &
监控日志
bash
tail -f /var/log/gateway.log

查看nacos服务列表

(4)启动ruoyi-monitor(ruoyi监控服务)服务
bash
nohup java -javaagent:/usr/local/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=ruoyi-monitor -Dskywalking.collector.backend_service=192.168.10.43:11800 -Dspring.profiles.active=dev -Dspring.cloud.nacos.config.file-extension=yml -Dspring.cloud.nacos.discovery.server-addr=192.168.10.43:8848 -Dspring.cloud.nacos.config.server-addr=192.168.10.43:8848 -jar /ruoyi-service/ruoyi-visual-monitor.jar &>/var/log/monitor.log &
监控日志
bash
tail -f /var/log/monitor.log

查看nacos服务列表

10、配置ruoyi前端源代码(192.168.10.47)
(1)修改前端源代码
指定后端接口IP
bash
vim /root/RuoYi-Cloud/ruoyi-ui/vue.config.js
修改:

(2)使用nodejs构建前端代码
安装依赖
bash
cd /root/RuoYi-Cloud/ruoyi-ui/
npm install
构建
bash
npm run build:prod

查看构建后生成的文件
bash
ls dist/

11、修改nginx配置文件(192.168.10.42)
bash
vim /usr/local/nginx/conf/nginx.conf
修改添加:
bash
try_files $uri $uri/ /index.html;
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.10.44:8080/;
}

创建网页目录
bash
mkdir /ruoyi
重启nginx服务
bash
systemctl restart nginx
12、拷贝前端代码到web服务器(192.168.10.47)
bash
scp -r /root/RuoYi-Cloud/ruoyi-ui/dist/ root@192.168.10.42:/ruoyi/
13、访问前端验证
使用浏览器访问192.168.10.42