传统方式部署(RuoYi-Cloud)微服务
实验环境
192.168.10.43和192.168.10.44内存不能小于4G
一、安装MySQL(192.168.10.46)
1、安装MySQL依赖库
dnf -y install ncurses-compat-libs
2、上传mysql-8.0.42-linux-glibc2.17-x86_64-minimal.tar.xz二进制包到/root目录,解压并移动到指定目录
tar xf mysql-8.0.42-linux-glibc2.17-x86_64-minimal.tar.xzmv mysql-8.0.42-linux-glibc2.17-x86_64-minimal /usr/local/mysql
3、设置环境变量
echo 'export MYSQL_HOME=/usr/local/mysql' >> /etc/profileecho 'export PATH=$MYSQL_HOME/bin:$PATH' >> /etc/profilesource /etc/profile
4、创建MySQL用户和数据目录
useradd -r -s /bin/false -M mysqlmkdir -p /usr/local/mysql/datachown -R mysql:mysql /usr/local/mysql/
5、创建MySQL配置文件
cat > /etc/my.cnf << EOF[mysqld]basedir=/usr/local/mysqldatadir=/usr/local/mysql/datapid-file=/usr/local/mysql/data/mysqld.pidlog-error=/usr/local/mysql/data/mysql.errsocket=/tmp/mysql.sockEOF
6、初始化MySQL数据库
mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
7、创建systemctl管理文件
cat > /usr/lib/systemd/system/mysqld.service << EOF[Unit]Description=MySQL ServerAfter=network.target[Service]Type=forkingUser=mysqlGroup=mysqlExecStart=/usr/local/mysql/bin/mysqld --daemonizeExecStop=/usr/local/mysql/bin/mysqladmin shutdownRestart=on-failure[Install]WantedBy=multi-user.targetEOF
8、启动MySQL服务
systemctl daemon-reloadsystemctl enable --now mysqld
9、修改MySQL的root用户密码
grep password /usr/local/mysql/data/mysql.err
mysql -uroot -p
alter user 'root'@'localhost' identified by '123456';
二、安装redis(192.168.10.45)
下载地址:https://download.redis.io/releases/
1、下载源码包
wget https://download.redis.io/releases/redis-6.0.20.tar.gz
2、编译安装到指定目录
tar xf redis-6.0.20.tar.gzcd redis-6.0.20/make PREFIX=/usr/local/redis -j$(nproc)sudo make PREFIX=/usr/local/redis install
3、设置环境变量
echo 'export REDIS_HOME=/usr/local/redis' >> /etc/profileecho 'export PATH=$REDIS_HOME/bin:$PATH' >> /etc/profilesource /etc/profile
4、创建redis用户和专用目录
useradd -r -s /bin/false -M redismkdir -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、修改配置文件
vim /usr/local/redis/conf/redis.conf
修改:
6、创建systemctl管理文件
cat > /usr/lib/systemd/system/redis.service << EOF[Unit]Description=Redis In-Memory Data StoreAfter=network.target[Service]Type=forkingUser=redisGroup=redisExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.confExecStop=/usr/local/redis/bin/redis-cli shutdownRestart=on-failurePrivateTmp=true[Install]WantedBy=multi-user.targetEOF
7、启动redis服务
systemctl daemon-reloadsystemctl enable --now redis
三、安装WEB(192.168.10.42)
1、下载nginx源码包
wget https://nginx.org/download/nginx-1.28.0.tar.gz
2、创建nginx用户
useradd -r -s /bin/false -M nginx
3、编译安装nginx
安装依赖
dnf -y install openssl-devel zlib-devel pcre-develtar xf nginx-1.28.0.tar.gzcd 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_modulemake -j$(nproc) && make install
4、创建systemctl管理文件
cat > /usr/lib/systemd/system/nginx.service << EOF[Unit]Description=Nginx server daemonAfter=network.target[Service]Type=forkingExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.confExecStop=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf -s stopExecReload=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf -s reloadRestart=on-failure[Install]WantedBy=multi-user.targetEOF
5、启动nginx服务
systemctl daemon-reloadsystemctl enable --now nginx
四、准备ruoyi源代码编译环境(192.168.10.47)
1、安装Java1.8
rocky9.5自带Java1.8
编译源代码需要安装java-1.8-devel
dnf -y install java-1.8.0-openjdk-develjava -version
2、安装maven3.8
(1)下载maven二进制包,解压并移动到指定目录
wget https://mirrors.aliyun.com/apache/maven/maven-3/3.8.9/binaries/apache-maven-3.8.9-bin.tar.gztar xf apache-maven-3.8.9-bin.tar.gzmv apache-maven-3.8.9 /usr/local/maven
(2)设置环境变量
echo 'export MAVEN_HOME=/usr/local/maven' >> /etc/profileecho 'export PATH=$MAVEN_HOME/bin:$PATH' >> /etc/profilesource /etc/profile
(3)查看maven版本
mvn -version
(4)配置maven
vim /usr/local/maven/conf/settings.xml
添加修改:
<id>aliyunmaven</id><mirrorOf>central</mirrorOf><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/repositories/central</url>
<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 系统属性
mvn help:system
显示下载地址为阿里源即为正确
3、安装nodejs
下载地址:https://nodejs.org/download/release/v22.15.1/
(1)下载nodejs二进制包,解压并移动到指定目录
wget https://nodejs.org/download/release/v22.15.1/node-v22.15.1-linux-x64.tar.xztar xf node-v22.15.1-linux-x64.tar.xzmv node-v22.15.1-linux-x64 /usr/local/nodejs
(2)设置环境变量
vim /etc/profile
添加修改:
export NODEJS_HOME=/usr/local/nodejsexport PATH=$MAVEN_HOME/bin:$NODEJS_HOME/bin:$PATH
source /etc/profile
(3)查看nodejs版本
node -v
npm -v
(4)修改npm镜像源
查看当前 npm 的镜像源
npm get config registry
修改为淘宝镜像源
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的开发
dnf -y install java-1.8.0-openjdk-develjava -version
2、部署单机nacos(服务注册中心/配置管理中心)
Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一款集 服务发现、配置管理 和 服务治理 于一体的平台,适用于云原生和微服务架构。
下载地址:https://nacos.io/docs/latest/overview/
(1)上传nacos-server-2.5.1.zip包到/root目录,解压并移动到指定目录(192.168.10.43)
unzip nacos-server-2.5.1.zipmv nacos /usr/local/
(2)拷贝nacos数据库文件到MySQL服务器(192.168.10.43)
scp /usr/local/nacos/conf/mysql-schema.sql root@192.168.10.46:/root
(3)创建用户和数据库并导入nacos数据库文件(192.168.10.46)
登录MySQL
create user nacos@'192.168.10.%' identified by '123456';grant all on nacos.* to nacos@'192.168.10.%';create database nacos charset utf8mb4;
mysql -unacos -p123456 -h 192.168.10.46 nacos < /root/mysql-schema.sql
验证
mysql -unacos -p123456 -h 192.168.10.46
show databases;use nacos;show tables;
(4)修改nacos配置文件(192.168.10.43)
vim /usr/local/nacos/conf/application.properties
修改:
(5)启动nacos服务(192.168.10.43)
单机启动nacos
sh /usr/local/nacos/bin/startup.sh -m standalone
监控日志
tail -f /usr/local/nacos/logs/start.out
(6)访问nacos
使用浏览器访问192.168.10.43:8848/nacos
登录需要输入用户和密码时,均为nacos
3、安装sentinel(熔断服务)(192.168.10.43)
Sentinel(哨兵)是阿里巴巴开源的 流量控制、熔断降级和系统保护 的轻量级组件,专门用于解决微服务架构中的 高可用性 和 稳定性 问题。
下载地址:https://github.com/alibaba/Sentinel/releases/tag/1.8.8
(1)上传sentinel-dashboard-1.8.8.jar jar包到/root目录
(2)启动sentinel服务
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目录,解压并移动到指定目录
tar xf apache-skywalking-apm-8.8.1.tar.gzmv apache-skywalking-apm-bin/ /usr/local/
(2)启动skywalking服务
sh /usr/local/apache-skywalking-apm-bin/bin/startup.sh
ss -anplt | grep java
(3)访问skywalking
使用浏览器访问192.168.10.43:8080
六、部署微服务
1、克隆ruoyi-cloud源代码(192.168.10.47)
git clone https://gitee.com/y_project/RuoYi-Cloud.git
2、导入ruoyi相关库和表
(1)拷贝源代码中库文件到mysql服务器(192.168.10.47)
scp -r /root/RuoYi-Cloud/sql/ root@192.168.10.46:/root/
(2)创建数据库和用户并导入数据(192.168.10.46)
登录MySQL
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.%';
mysql -uroot -p123456 -h 192.168.10.46 ry-cloud < /root/sql/quartz.sqlmysql -uroot -p123456 -h 192.168.10.46 ry-cloud < /root/sql/ry_20250523.sqlmysql -uroot -p123456 -h 192.168.10.46 ry-config < /root/sql/ry_config_20250224.sql
3、配置nacos(192.168.10.43)
(1)修改配置文件
vim /usr/local/nacos/conf/application.properties
修改:
(2)重启nacos服务
sh /usr/local/nacos/bin/shutdown.shsh /usr/local/nacos/bin/startup.sh -m standalone
监控日志
tail -f /usr/local/nacos/logs/start.out
(3)访问nacos
使用浏览器访问192.168.10.43:8848/nacos
4、修改ruoyi源代码(192.168.10.47)
vim /root/RuoYi-Cloud/ruoyi-auth/src/main/resources/bootstrap.yml
修改:
vim /root/RuoYi-Cloud/ruoyi-gateway/src/main/resources/bootstrap.yml
修改:
vim /root/RuoYi-Cloud/ruoyi-modules/ruoyi-file/src/main/resources/bootstrap.yml
修改:
vim /root/RuoYi-Cloud/ruoyi-modules/ruoyi-gen/src/main/resources/bootstrap.yml
修改:
vim /root/RuoYi-Cloud/ruoyi-modules/ruoyi-job/src/main/resources/bootstrap.yml
修改:
vim /root/RuoYi-Cloud/ruoyi-modules/ruoyi-system/src/main/resources/bootstrap.yml
修改:
vim /root/RuoYi-Cloud/ruoyi-visual/ruoyi-monitor/src/main/resources/bootstrap.yml
修改:
5、编译ruoyi源代码
cd /root/RuoYi-Cloud/mvn clean package
6、拷贝所有jar包到service(192.168.10.44)服务器
(1)创建jar包存放目录(192.168.10.44)
mkdir /ruoyi-service
(2)拷贝jar包(192.168.10.47)
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目录,解压并移动到指定目录
tar xf apache-skywalking-java-agent-8.8.0.tgzmv skywalking-agent/ /usr/local/
9、启动服务(192.168.10.44)
(1)启动ruoyi-system(ruoyi系统模块)服务
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 配置中心地址,用于动态获取配置(如数据库连接信息) |
监控日志
tail -f /var/log/system.log
查看nacos服务列表
(2)启动ruoyi-auth(ruoyi认证服务)服务
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 &
监控日志
tail -f /var/log/auth.log
查看nacos服务列表
(3)启动ruoyi-gateway(ruoyi网关服务)服务
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 &
监控日志
tail -f /var/log/gateway.log
查看nacos服务列表
(4)启动ruoyi-monitor(ruoyi监控服务)服务
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 &
监控日志
tail -f /var/log/monitor.log
查看nacos服务列表
10、配置ruoyi前端源代码(192.168.10.47)
(1)修改前端源代码
指定后端接口IP
vim /root/RuoYi-Cloud/ruoyi-ui/vue.config.js
修改:
(2)使用nodejs构建前端代码
安装依赖
cd /root/RuoYi-Cloud/ruoyi-ui/npm install
构建
npm run build:prod
查看构建后生成的文件
ls dist/
11、修改nginx配置文件(192.168.10.42)
vim /usr/local/nginx/conf/nginx.conf
修改添加:
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/;}
创建网页目录
mkdir /ruoyi
重启nginx服务
systemctl restart nginx
12、拷贝前端代码到web服务器(192.168.10.47)
scp -r /root/RuoYi-Cloud/ruoyi-ui/dist/ root@192.168.10.42:/ruoyi/
13、访问前端验证
使用浏览器访问192.168.10.42