實驗環境
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