一、主机规划 && 准备工作
nginx:192.168.31.3
mysql、redis、nodejs、maven:192.168.31.253
JDK >= 1.8 (推荐1.8版本)
Mysql >= 5.7.0 (推荐5.7版本)
Redis >= 3.0
Maven >= 3.0
Node >= 12
nacos >= 2.0.4 (ruoyi-cloud < 3.0 需要下载nacos >= 1.4.x版本)
sentinel >= 1.6.0 【可选】
二、后端部署
git clone https://gitee.com/y_project/RuoYi-Cloud.git
2.1 数据库
数据源导入
mysql>CREATE DATABASE `ry-cloud` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
mysql> use ry-cloud
mysql> source /root/RuoYi-Cloud/sql/ry_20240629.sql
mysql> CREATE DATABASE `ry-config` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
mysql> use ry-config
mysql> source /root/RuoYi-Cloud/ry_config_20240902.sql
配置 用户&&权限
create user 'ry'@'192.168.31.253' identified by '123456';
grant all on `ry-cloud`.* to 'ry'@'192.168.31.253';
grant all on `ry-config`.* to 'ry'@'192.168.31.253';
2.2 注册中心&& 配置中心nacos
安装nacos
cd /usr/local/ && unzip nacos-server-2.1.0.zip
chmod +x nacos/bin/*
cat <<EOF> /etc/profile.d/nacos.sh
export NACOS_HOME=/usr/local/nacos
export PATH=$NACOS_HOME/bin:$PATH
EOF
source /etc/profile.d/nacos.sh
nacos配置文件增加支持mysql数据源配置
/usr/local/nacos/conf/application.properties
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.31.253:3306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=ry
db.password=123456
启动nacos配置中心【读取数据库】【所有模块的yaml文件】
startup.sh -m standalone
jps
http://192.168.31.253:8848/nacos
#账户密码默认nacos
修改配置文件
三、后端部署
3.1 打包工程文件
各个子模块都会生成自身的target目录及jar包
cd ~/RuoYi-Cloud && mvn clean package -Dmaven.test.skip=true
3.2 启动jar包
cd /root/RuoYi-Cloud/ruoyi-gateway/target/
java -Dfile.encoding=utf-8 -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -jar ruoyi-gateway.jar
cd /root/RuoYi-Cloud/ruoyi-auth/target/
java -Dfile.encoding=utf-8 -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -jar ruoyi-auth.jar
cd /root/RuoYi-Cloud/ruoyi-modules/ruoyi-system/target/
java -Dfile.encoding=utf-8 -Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -jar ruoyi-modules-system.jar
四、前端部署
#192.168.31.3
cd /root/RuoYi-Cloud/ruoyi-ui
npm install --registry=https://registry.npmmirror.com
npm run build:prod
#192.168.31.253
mkdir /ry-cloud
#192.168.31.3
scp -r /root/RuoYi-Cloud/ruoyi-ui/dist/* root@192.168.31.3:/ry-cloud
nginx配置
upstream ry-cloud {
#ip_hash;
server 192.168.31.253:8080;
# server 192.168.31.5:8080;
}
server {
listen 80;
server_name www.ry-cloud.com;
charset utf-8;
access_log logs/ry_cloud_access.log main;
error_log logs/ry_cloud_error.log;
location / {
root /ry-cloud;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
将访问 /prod-api/【后端封装的所有接口都带这个格式】请求,转发到后端网关
location /prod-api/ {
# proxy_pass http://192.168.31.253:8080/;
proxy_pass http://ry-cloud/;
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;
}
# 避免actuator暴露
if ($request_uri ~ "/actuator") {
return 403;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}