RuoYi-Cloud微服务框架在Linux生产环境的完整部署与排错指南

发布时间:2026/7/30 4:06:49

RuoYi-Cloud微服务框架在Linux生产环境的完整部署与排错指南 1. 项目背景与部署目标最近在帮一个朋友的公司做技术架构升级他们之前用的单体应用在业务量上来之后性能瓶颈和迭代效率的问题越来越突出。经过几轮技术选型最终决定基于 RuoYi-Cloud 这套微服务框架来重构他们的后台管理系统。选它的理由很直接功能齐全社区活跃文档也相对完整对于从单体过渡到微服务的团队来说学习成本和上手难度都比较友好。不过真到了部署环节尤其是在他们已有的 Linux 生产服务器上要把这套包含多个服务的分布式系统跑起来还是遇到了不少预料之中和预料之外的“坑”。网上的教程要么太零散要么环境不一致照着做总差那么几步。所以我决定把这次从零开始在纯净的 Linux 环境下使用 MySQL 作为数据库、Nginx 作为网关和静态资源服务器的完整部署过程以及中间踩过的所有坑系统地记录下来。这不仅仅是步骤的罗列更重要的是我会解释每个步骤背后的设计意图、参数选择的考量以及当命令执行失败或服务启动异常时应该如何一步步排查和定位问题。本次部署的目标环境很明确一台 CentOS 7.x 的服务器其他主流 Linux 发行版如 Ubuntu 20.04 思路也完全一致我们需要在上面完成从基础环境配置JDK、MySQL、Redis、Nacos、到各个微服务模块编译打包、再到最终通过 Nginx 统一对外提供服务的全过程。最终你会得到一个完全自主掌控的、可稳定运行的 RuoYi-Cloud 生产级原型环境。2. 基础环境准备稳扎稳打的第一步部署微服务系统基础环境就像是地基地基不稳后面盖什么楼都容易出问题。这一部分我们不仅要安装软件更要理解每个组件的作用并做好关键的配置为后续步骤扫清障碍。2.1 JDK 安装与多版本管理策略RuoYi-Cloud 的微服务模块都是基于 Spring Boot 构建的因此 Java 运行环境是必须的。我强烈建议使用 JDK 8 或 JDK 11 这两个 LTS长期支持版本。这里以 JDK 8 为例但方法适用于任何版本。首先不建议直接使用yum install java-1.8.0-openjdk因为这样安装的 OpenJDK 可能缺少某些开发工具包且版本管理不灵活。我更喜欢手动下载 Oracle JDK 或 OpenJDK 的压缩包进行安装。# 1. 创建统一的软件安装目录 mkdir -p /usr/local/java cd /usr/local/java # 2. 下载 JDK 8 压缩包 (请替换为实际下载链接或从官网获取) # 这里以 OpenJDK 8 为例可以从 AdoptOpenJDK 或 Oracle 官网下载 # wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u302-b08/OpenJDK8U-jdk_x64_linux_hotspot_8u302b08.tar.gz # 3. 解压并重命名方便管理 tar -zxvf OpenJDK8U-jdk_x64_linux_hotspot_8u302b08.tar.gz mv jdk8u302-b08 jdk1.8.0_302 # 4. 配置环境变量 vim /etc/profile在/etc/profile文件末尾添加以下内容# JAVA_HOME export JAVA_HOME/usr/local/java/jdk1.8.0_302 export JRE_HOME$JAVA_HOME/jre export CLASSPATH.:$JAVA_HOME/lib:$JRE_HOME/lib export PATH$PATH:$JAVA_HOME/bin注意JAVA_HOME的路径必须是你实际解压后的目录名一个字母都不能错。很多后续工具如 Maven、Nacos都依赖这个变量。保存退出后执行source /etc/profile使配置立即生效。然后通过java -version和javac -version验证安装是否成功。为什么选择手动安装而非 yum手动安装让你对 Java 环境的路径和版本有绝对的控制权。当未来需要升级或同时维护多个 JDK 版本比如某些服务用 JDK 8另一些用 JDK 11时你只需要修改JAVA_HOME的指向或者使用alternatives命令进行切换非常清晰不会和系统自带的或其他 yum 安装的版本产生冲突。2.2 MySQL 8.0 的安装、安全加固与远程访问配置数据库是系统的核心RuoYi-Cloud 默认使用 MySQL。这里我们安装 MySQL 8.0并完成一些比“一键安装”更重要的安全性和可用性配置。# 1. 添加 MySQL Yum 仓库并安装 wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm rpm -ivh mysql80-community-release-el7-3.noarch.rpm yum install -y mysql-community-server # 2. 启动 MySQL 并设置开机自启 systemctl start mysqld systemctl enable mysqld # 3. 获取初始临时密码 grep temporary password /var/log/mysqld.log使用得到的临时密码登录 MySQLmysql -uroot -p。首次登录后必须修改密码MySQL 8.0 的密码策略默认较强。-- 修改 root 用户密码请将 ‘YourNewStrongPassword123!‘ 替换为高强度密码 ALTER USER rootlocalhost IDENTIFIED BY YourNewStrongPassword123!;接下来是关键步骤创建 RuoYi-Cloud 专用的数据库和用户。绝对不建议直接使用 root 用户连接应用。-- 1. 创建数据库字符集使用 utf8mb4排序规则使用 utf8mb4_general_ci -- utf8mb4 是真正的 UTF-8 编码支持存储所有 Unicode 字符如emoji CREATE DATABASE ry-cloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE DATABASE ry-config CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -- 2. 创建专用用户并授予对应数据库的所有权限 -- ‘ry_user‘ 和 ‘YourUserPassword123!‘ 请替换为你的用户名和密码 CREATE USER ry_user% IDENTIFIED BY YourUserPassword123!; GRANT ALL PRIVILEGES ON ry-cloud.* TO ry_user%; GRANT ALL PRIVILEGES ON ry-config.* TO ry_user%; FLUSH PRIVILEGES;这里有一个大坑MySQL 8.0 默认使用了caching_sha2_password这种新的身份验证插件而一些较老的 MySQL 客户端或驱动可能不支持会导致连接失败。为了让 RuoYi其JDBC驱动通常是支持的和其他工具如某些数据库管理软件都能顺利连接我们可以将用户密码的验证插件改回旧的mysql_native_password。-- 修改用户密码及验证插件 ALTER USER ry_user% IDENTIFIED WITH mysql_native_password BY YourUserPassword123!; FLUSH PRIVILEGES;最后配置 MySQL 允许远程连接默认只允许 localhost注释掉/etc/my.cnf中bind-address 127.0.0.1这一行或将其改为0.0.0.0谨慎生产环境建议结合防火墙。重启 MySQLsystemctl restart mysqld。确保服务器防火墙开放了 3306 端口。2.3 Redis 单机模式安装与基础安全设置Redis 在 RuoYi-Cloud 中用于缓存、会话存储等。生产环境建议用集群但部署测试或小型项目单机模式足够了。# 1. 安装 yum install -y redis # 2. 启动并设置开机自启 systemctl start redis systemctl enable redis # 3. 使用 redis-cli 测试 redis-cli 127.0.0.1:6379 ping # 应返回 PONG安装很简单但安全配置更重要。默认的 Redis 没有密码监听所有接口这非常危险。# 编辑 Redis 配置文件 vim /etc/redis.conf需要修改以下几个关键配置bind 127.0.0.1默认只绑定本地回环地址如果应用和 Redis 在同一台服务器保持这个设置最安全。如果需要远程连接不推荐可以改为服务器内网IP或0.0.0.0但务必配合下面两步。protected-mode yes保护模式开启当未设置bind且未设置密码时只接受本地连接。requirepass your_strong_password_here最重要的一步取消注释并设置一个强密码。RuoYi-Cloud 的配置文件中需要填写这个密码。daemonize yes确保以守护进程运行默认已是 yes。修改后重启 Redissystemctl restart redis。再次连接就需要认证了redis-cli -a your_strong_password_here。2.4 Nacos 2.x 单机模式部署与数据库持久化Nacos 是 RuoYi-Cloud 的服务注册与配置中心所有微服务都要向它注册并从它那里获取配置。从官网下载最新稳定版的 Nacos Server 压缩包。# 1. 下载并解压到 /usr/local cd /usr/local wget https://github.com/alibaba/nacos/releases/download/2.1.0/nacos-server-2.1.0.tar.gz tar -zxvf nacos-server-2.1.0.tar.gz mv nacos-server-2.1.0 nacos # 2. 初始化数据库 # 使用我们之前创建的 ry-config 数据库 mysql -ury_user -p -h127.0.0.1 ry-config /usr/local/nacos/conf/mysql-schema.sql接下来是核心配置让 Nacos 使用 MySQL 而不是内置的 Derby这样配置信息才能持久化重启不丢失。cd /usr/local/nacos/conf cp application.properties.example application.properties vim application.properties找到数据库配置部分修改为# 数据库类型目前只支持 mysql spring.datasource.platformmysql # 数据库实例数量 db.num1 # 第一个数据库的连接信息 db.url.0jdbc:mysql://127.0.0.1:3306/ry-config?characterEncodingutf8connectTimeout1000socketTimeout3000autoReconnecttrueuseUnicodetrueuseSSLfalseserverTimezoneUTC db.user.0ry_user db.password.0YourUserPassword123!注意serverTimezoneUTC非常重要可以避免数据库连接时的时区错误。如果应用和数据库时区不一致可以按需调整为Asia/Shanghai。Nacos 2.x 版本在单机模式下启动命令有所变化# 进入 bin 目录 cd /usr/local/nacos/bin # 单机模式启动使用内置的 Tomcat sh startup.sh -m standalone启动后访问http://你的服务器IP:8848/nacos默认账号密码是nacos/nacos。首次登录后务必立即修改密码。常见启动失败排查端口占用Nacos 默认使用 8848。用netstat -tlnp | grep 8848检查。数据库连接失败检查application.properties中的数据库 IP、端口、用户名、密码是否正确以及 MySQL 是否允许远程连接这里我们用的 127.0.0.1所以需要 MySQL 监听本地。Java 环境问题确认JAVA_HOME已正确配置并且java -version可用。3. RuoYi-Cloud 源码编译与配置详解基础环境就绪后我们开始处理 RuoYi-Cloud 项目本身。你需要从 Gitee 或 GitHub 克隆项目源码到服务器或者在你本地开发机编译好再上传。这里假设你在服务器上直接操作。3.1 项目结构与 Maven 多模块编译首先理解项目结构至关重要。RuoYi-Cloud 是一个标准的 Maven 多模块项目。ruoyi-cloud/ ├── ruoyi-common/ # 通用工具类、基础组件 ├── ruoyi-gateway/ # Spring Cloud Gateway 网关模块 ├── ruoyi-auth/ # 认证授权中心 ├── ruoyi-system/ # 系统管理模块核心业务 ├── ruoyi-gen/ # 代码生成模块 ├── ruoyi-job/ # 定时任务模块 ├── ruoyi-file/ # 文件服务模块 ├── sql/ # 数据库初始化脚本 ├── pom.xml # 父工程总 POM └── ...编译前必须修改父工程pom.xml中的 JDK 版本确保与你安装的版本一致。找到maven.compiler.source和maven.compiler.target属性通常改为1.8。# 1. 进入项目根目录 cd /path/to/ruoyi-cloud # 2. 执行编译打包命令 mvn clean package -Dmaven.test.skiptrue-Dmaven.test.skiptrue参数是跳过测试可以显著加快打包速度在首次部署时建议使用。编译成功后在ruoyi-gateway/target/、ruoyi-auth/target/等各个子模块目录下你会看到生成的*.jar文件。编译过程可能遇到的坑依赖下载失败检查 Maven 的settings.xml配置的镜像仓库如阿里云镜像是否可用网络是否通畅。内存不足如果服务器内存较小Maven 编译可能会报Heap Space错误。可以设置环境变量export MAVEN_OPTS-Xms512m -Xmx1024m来增加内存。JDK 版本不匹配如果项目指定了更高版本的 JDK如11而你环境是 JDK 8编译会报错。必须统一版本。3.2 关键配置文件解析与定制编译出的 Jar 包是“死”的让它们“活”起来的是配置文件。RuoYi-Cloud 的配置主要放在每个子模块的src/main/resources/目录下最终会打包进 Jar。但更常见的做法是将配置中心化即放到 Nacos 中。项目源码里通常有一个ruoyi-cloud/src/main/resources/bootstrap.yml或各个模块的bootstrap.yml它定义了应用如何连接 Nacos。你需要关注以下几个核心配置并在 Nacos 控制台或本地配置文件中进行修改数据库连接 (application-datasource.yml)spring: datasource: dynamic: primary: master datasource: master: url: jdbc:mysql://localhost:3306/ry-cloud?useUnicodetruecharacterEncodingutf8zeroDateTimeBehaviorconvertToNulluseSSLtrueserverTimezoneGMT%2B8 username: ry_user password: YourUserPassword123! driver-class-name: com.mysql.cj.jdbc.Driver确保这里的url、username、password与你创建的数据库信息完全一致。注意时区GMT%2B8即东八区。Redis 连接 (application-redis.yml)spring: redis: host: localhost port: 6379 password: your_strong_password_here # 你在 redis.conf 中设置的密码 database: 0 timeout: 10s lettuce: pool: max-active: 20 max-wait: -1ms max-idle: 10 min-idle: 0如果 Redis 设置了密码password项必须填写否则连接不上。Nacos 注册中心与配置中心 (bootstrap.yml)spring: application: name: ruoyi-auth # 注意每个模块的 name 不同 cloud: nacos: discovery: server-addr: 127.0.0.1:8848 config: server-addr: 127.0.0.1:8848 file-extension: yaml group: DEFAULT_GROUP namespace: public # 命名空间默认 public这是每个微服务模块连接到 Nacos 的入口配置。server-addr必须指向你部署的 Nacos 服务器地址。配置的优先级与加载顺序Spring Cloud 应用会先加载bootstrap.yml获取 Nacos 地址然后从 Nacos 拉取{spring.application.name}-{profile}.yaml格式的配置如ruoyi-auth-dev.yaml。因此更推荐你将上述数据库、Redis 等配置在 Nacos 控制台中进行集中管理而不是写死在每个 Jar 包中。这样修改配置后只需重启应用或利用配置刷新功能即可生效无需重新打包。4. 服务启动、顺序与健康检查微服务启动有依赖顺序乱序启动会导致服务注册失败或调用异常。正确的启动顺序是配置中心/注册中心 (Nacos) → 网关 (Gateway) → 认证中心 (Auth) → 其他业务模块 (System, File, Job等)。4.1 启动脚本编写与管理不建议直接使用java -jar命令启动因为无法管理日志、进程。我们可以为每个服务编写一个简单的启动脚本。创建一个启动目录例如/opt/ruoyi-cloud/将编译好的ruoyi-gateway.jar、ruoyi-auth.jar等复制过来。然后为每个服务创建脚本start-xxx.sh。以ruoyi-gateway为例start-gateway.sh#!/bin/bash APP_NAMEruoyi-gateway.jar JAVA_OPTS-Xms512m -Xmx512m -XX:UseG1GC LOG_PATH./logs/gateway.log # 检查是否已存在进程 PID$(ps -ef | grep $APP_NAME | grep -v grep | awk {print $2}) if [ -n $PID ]; then echo $APP_NAME is already running, PID$PID exit 1 fi # 创建日志目录 mkdir -p ./logs # 启动应用并将日志输出到文件 nohup java $JAVA_OPTS -jar $APP_NAME $LOG_PATH 21 echo $APP_NAME started successfully. echo Check log: tail -f $LOG_PATHJAVA_OPTS设置 JVM 参数。-Xms和-Xmx设置堆内存初始大小和最大值根据服务器内存调整。-XX:UseG1GC指定使用 G1 垃圾收集器通常性能较好。nohup和让进程在后台运行即使退出终端也不停止。日志重定向到文件方便排查问题。给脚本执行权限chmod x start-gateway.sh。其他模块的脚本类似只需修改APP_NAME和LOG_PATH。4.2 启动顺序与依赖检查按照顺序执行脚本cd /opt/ruoyi-cloud # 1. 确保 Nacos 已启动 # 2. 启动网关 ./start-gateway.sh # 3. 等待几秒检查网关日志确认启动成功无报错且注册到 Nacos tail -f logs/gateway.log # 4. 启动认证中心 ./start-auth.sh # 5. 启动系统模块等其他服务 ./start-system.sh ./start-file.sh # ...如何检查服务是否健康查看日志tail -f logs/xxx.log观察是否有Started XXXApplication in xx seconds字样以及是否有连接数据库、Redis、Nacos 成功的日志有无异常堆栈信息。查看 Nacos 控制台访问http://ip:8848/nacos进入“服务管理 - 服务列表”。你应该能看到ruoyi-gateway、ruoyi-auth、ruoyi-system等服务且状态为“健康”绿色UP图标。调用接口测试通过网关地址默认端口 8080访问一个不需要认证的接口如http://你的服务器IP:8080/或http://你的服务器IP:8080/captchaImage获取验证码看是否能收到正常响应。4.3 常见启动故障排查如果服务启动失败或注册不上按以下思路排查现象应用启动后立刻退出日志中有Connect to 127.0.0.1:8848 failed。排查Nacos 服务没启动或端口被防火墙拦截。检查 Nacos 进程ps -ef | grep nacos检查端口netstat -tlnp | grep 8848检查防火墙规则firewall-cmd --list-all。现象应用启动卡住日志显示连接 MySQL 或 Redis 超时。排查检查application.yml或 Nacos 中的数据库/Redis 配置IP、端口、用户名、密码是否正确。测试从服务器命令行用mysql或redis-cli命令是否能连上。现象Nacos 中服务实例列表为空。排查检查应用的bootstrap.yml中spring.cloud.nacos.discovery.server-addr配置是否正确。检查应用日志看是否有注册成功的日志。检查服务器时间是否同步时间差过大会导致注册失败。现象网关启动成功但访问接口返回 404 或 500。排查检查网关的路由配置通常在 Nacos 的ruoyi-gateway.yaml配置中是否将请求正确路由到了后端服务如ruoyi-system。检查后端服务是否真的启动并健康。5. Nginx 配置与前端部署微服务后端启动完毕后我们需要一个统一的入口来对外提供服务并处理静态资源前端文件。这就是 Nginx 的角色作为反向代理网关和静态文件服务器。5.1 Nginx 安装与基础配置# 安装 Nginx yum install -y nginx # 启动并设置开机自启 systemctl start nginx systemctl enable nginx安装后访问http://你的服务器IP应该能看到 Nginx 的欢迎页面。Nginx 的主配置文件是/etc/nginx/nginx.conf我们通常不在主配置里直接修改而是在/etc/nginx/conf.d/目录下创建独立的配置文件例如ruoyi-cloud.conf。5.2 反向代理后端 API假设前端将通过http://your-domain.com或服务器IP访问我们希望所有以/api/开头的请求都被转发到后端的网关服务ruoyi-gateway运行在 8080 端口。创建并编辑配置文件vim /etc/nginx/conf.d/ruoyi-cloud.conf写入以下内容server { listen 80; server_name your-domain.com 你的服务器IP; # 替换为你的域名或IP # 前端静态文件所在目录 root /usr/share/nginx/html/ruoyi-ui; index index.html index.htm; # 解决前端路由如Vue Router的history模式刷新404问题 location / { try_files $uri $uri/ /index.html; } # 反向代理后端 API 请求到网关 location /api/ { proxy_pass http://127.0.0.1:8080/; # 网关地址 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; } # 代理 WebSocket 连接如果系统有通知等需要长连接的功能 location /websocket/ { proxy_pass http://127.0.0.1:8080/websocket/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # 静态资源缓存设置 location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { expires 1y; add_header Cache-Control public, immutable; } # 错误页面配置 error_page 500 502 503 504 /50x.html; location /50x.html { root /usr/share/nginx/html; } }关键配置解释location /api/将所有/api路径的请求转发到本机 8080 端口的网关服务。proxy_set_header指令将客户端的真实 IP 等信息传递给后端这对于日志记录和某些安全策略很重要。location /处理前端静态文件。try_files指令是解决 Vue/React 等单页面应用SPA在 history 路由模式下直接访问非根路径或刷新页面时出现 404 错误的标准做法。它会按顺序尝试寻找文件如果都没找到最后返回index.html由前端路由接管。location ~* \.(js|css|png...)$设置静态资源的长期缓存利用浏览器缓存提升加载速度。5.3 前端项目部署RuoYi-Cloud 通常有配套的前端项目如ruoyi-ui基于 Vue。你需要在前端开发环境中使用npm run build:prod命令进行生产环境构建会生成一个dist目录。将这个dist目录下的所有文件上传到服务器上 Nginx 配置中root指令指定的目录例如/usr/share/nginx/html/ruoyi-ui/。# 在服务器上操作 mkdir -p /usr/share/nginx/html/ruoyi-ui # 假设你将本地的 dist 目录内容打包成了 ruoyi-ui.tar.gz # 上传后解压 tar -zxvf ruoyi-ui.tar.gz -C /usr/share/nginx/html/ruoyi-ui/ # 确保 Nginx 进程用户通常是 nginx有读取权限 chown -R nginx:nginx /usr/share/nginx/html/ruoyi-ui5.4 配置检查与重载在修改 Nginx 配置后务必先检查语法是否正确再重载配置。# 检查配置文件语法 nginx -t # 如果显示 “syntax is ok” 和 “test is successful”则语法正确 # 重载 Nginx 配置平滑重启不影响正在处理的连接 nginx -s reload # 或者使用 systemctl systemctl reload nginx现在你应该可以通过服务器的 IP 地址或你配置的域名直接访问到 RuoYi-Cloud 的前端登录页面了。所有前端对后端 API 的调用以/api/开头都会被 Nginx 透明地转发到后端的网关服务。6. 部署后优化与监控要点系统跑起来只是第一步要稳定运行还需要一些后续的优化和基本的监控。6.1 服务进程守护与自启动我们之前用nohup启动的服务在服务器重启后会失效。我们需要配置系统服务Systemd来管理这些 Java 应用。为每个服务创建一个 service 文件例如ruoyi-gateway.service放在/etc/systemd/system/目录下。[Unit] DescriptionRuoYi Cloud Gateway Service Afternetwork.target nginx.service mysql.service redis.service nacos.service Wantsnetwork.target [Service] Typesimple Userroot WorkingDirectory/opt/ruoyi-cloud ExecStart/usr/local/java/jdk1.8.0_302/bin/java -Xms512m -Xmx512m -jar ruoyi-gateway.jar ExecStop/bin/kill -15 $MAINPID Restartalways RestartSec10 StandardOutputappend:/opt/ruoyi-cloud/logs/gateway.out.log StandardErrorappend:/opt/ruoyi-cloud/logs/gateway.err.log [Install] WantedBymulti-user.target关键参数说明After定义启动顺序确保网络、数据库、Nacos 等依赖服务先启动。Typesimple适用于不会 fork 子进程的简单服务。Restartalways和RestartSec10当服务异常退出时自动在 10 秒后重启这是保障服务可用的重要手段。StandardOutput和StandardError将标准输出和错误输出重定向到文件方便查看日志。创建好文件后执行systemctl daemon-reload # 重新加载 systemd 配置 systemctl start ruoyi-gateway # 启动服务 systemctl enable ruoyi-gateway # 设置开机自启 systemctl status ruoyi-gateway # 查看状态为ruoyi-auth、ruoyi-system等服务也创建对应的 service 文件并启用。6.2 基础监控与日志收集日志监控日志是排查问题的第一现场。除了用tail -f实时查看建议使用logrotate对日志文件进行自动轮转和压缩防止日志文件过大占满磁盘。可以配置在/etc/logrotate.d/下。进程监控使用简单的 shell 脚本或crontab定时任务检查关键进程如 Java 进程、Nginx、MySQL、Redis、Nacos是否存活如果发现进程消失可以尝试自动重启或发送告警。基础资源监控使用top、htop、free -m、df -h等命令定期查看 CPU、内存、磁盘使用情况。对于生产环境可以考虑集成更专业的监控系统如 Prometheus Grafana来可视化监控 JVM 内存、GC 情况、接口响应时间、系统负载等指标。6.3 安全加固建议防火墙使用firewalld或iptables严格限制服务器端口开放。只对外开放必要的端口如 80/443 for Nginx22 for SSH。将 MySQL3306、Redis6379、Nacos8848等服务的监听端口限制在内部网络或本机。修改默认端口/密码修改 Nacos、Redis 的默认端口和密码。尤其是 Nacos 的管理后台8848不要暴露在公网或者至少要用强密码并考虑增加 IP 白名单。定期备份制定数据库MySQL的定期备份策略如使用mysqldump配合crontab并将备份文件传输到其他存储位置。HTTPS为你的域名申请 SSL 证书可以使用 Let‘s Encrypt 免费证书并在 Nginx 中配置 HTTPS将 HTTP 请求重定向到 HTTPS保证数据传输安全。部署完成并经过一段时间的稳定运行和测试后这套 RuoYi-Cloud 微服务系统就可以交付使用了。整个过程从环境准备到服务上线最耗费时间的往往不是步骤本身而是遇到问题时的排查和解决。希望这份结合了具体操作和深层原理的详细记录能帮你绕过我踩过的那些坑更顺畅地完成部署。

相关新闻