RuoYi-Cloud 部署实战:Linux环境下Oracle与Nginx的协同配置指南
2026/5/13 13:16:06 网站建设 项目流程

1. 环境准备与基础配置

在Linux环境下部署RuoYi-Cloud微服务项目,首先需要做好基础环境准备。我曾在多个生产环境中部署过这套系统,发现前期准备工作是否充分直接决定了后续部署的顺利程度。这里我会分享一些容易被忽略的细节。

1.1 技术选型与版本匹配

RuoYi-Cloud-Oracle版本的技术栈组合需要特别注意版本兼容性。根据实战经验,推荐以下组合:

组件推荐版本关键说明
Spring Boot2.5.3微服务基础框架
Oracle JDBC驱动ojdbc8-12.2.0.1必须与Oracle版本匹配
Nginx1.9.9+需要支持WebSocket代理
Oracle数据库11g/12c需配置正确的字符集(AL32UTF8)

特别提醒:Oracle的ojdbc驱动版本必须严格匹配,否则会出现难以排查的连接问题。我曾遇到过驱动版本不匹配导致的CLOB字段读取异常,耗费半天时间才定位到问题。

1.2 源码获取与依赖安装

获取源码时推荐使用Git方式克隆仓库:

git clone https://github.com/yangzongzhuan/RuoYi-Cloud-Oracle.git cd RuoYi-Cloud-Oracle/driver/

安装Oracle驱动到本地Maven仓库是个关键步骤,很多新手会忽略:

mvn install:install-file \ -DgroupId=com.oracle \ -DartifactId=ojdbc8 \ -Dversion=12.2.0.1 \ -Dpackaging=jar \ -Dfile=ojdbc8-12.2.0.1.jar

踩坑提醒:如果使用公司内网环境,记得先配置Maven镜像源。我常用阿里云镜像,在settings.xml中添加:

<mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror>

2. Oracle数据库深度配置

2.1 数据库安装与调优

Oracle在Linux下的安装有几点需要特别注意:

  1. 内存分配:建议至少4GB内存,设置合理的SGA/PGA比例
  2. 表空间规划:为RuoYi单独创建表空间,避免使用SYSTEM表空间
  3. 字符集设置:必须使用AL32UTF8,否则会出现中文乱码

创建表空间的SQL示例:

CREATE TABLESPACE ruoyi_data DATAFILE '/oracle/oradata/ruoyi01.dbf' SIZE 500M AUTOEXTEND ON;

2.2 执行初始化脚本

执行SQL脚本前有个关键步骤:修改ry_20210806.sql文件末尾,添加斜杠/。这是Oracle SQL*Plus的特殊要求,PL/SQL Developer也需要这个符号才能正确识别存储过程。

常见问题排查:

  • ORA-00911错误:检查SQL语句是否以分号结尾
  • ORA-06512错误:通常是存储过程编译错误,检查日志定位问题行
  • 中文乱码:确认数据库字符集和服务端NLS_LANG设置一致

3. Nginx高级配置技巧

3.1 反向代理配置

Nginx配置微服务时需要特别注意WebSocket支持,这是RuoYi-Cloud监控功能的关键。以下是核心配置片段:

location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # WebSocket支持 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_read_timeout 3600s; }

3.2 负载均衡策略

对于生产环境,建议采用加权轮询策略:

upstream backend { server 192.168.1.101:8080 weight=5; server 192.168.1.102:8080 weight=3; server 192.168.1.103:8080 weight=2; keepalive 32; # 保持长连接 }

性能调优参数:

  • worker_processes:设置为CPU核心数
  • worker_connections:建议1024-4096
  • keepalive_timeout:适当增大减少连接建立开销

4. 服务组件联调实战

4.1 Nacos特殊配置

Oracle版需要特别注意Nacos的数据库配置。在application.properties中:

# 使用MySQL而非Derby spring.datasource.platform=mysql db.url.0=jdbc:mysql://localhost:3306/ry-config?useSSL=false&serverTimezone=UTC

常见登录问题排查:

  • 检查ry-config库的users表是否有nacos/nacos账户
  • 确认MySQL连接参数正确
  • 查看logs/start.out日志文件

4.2 Sentinel流量控制

Sentinel控制台启动后,需要在每个微服务应用中配置:

spring: cloud: sentinel: transport: dashboard: localhost:8718 port: 8719 # 每个应用需要不同端口

生产环境建议:

  • 配置持久化规则到Nacos
  • 设置合理的QPS阈值
  • 启用热点参数限流

5. 部署验证与监控

5.1 全链路测试方案

建议按照以下顺序验证:

  1. 直接访问Oracle验证基础数据
  2. 单独访问各微服务接口
  3. 通过Nginx代理访问
  4. 测试登录和权限功能
  5. 验证监控端点

5.2 性能监控配置

Spring Boot Admin的Oracle版特殊配置:

# 监控端点配置 management.endpoints.web.exposure.include=* management.endpoint.health.show-details=always

关键监控指标:

  • 数据库连接池使用情况
  • JVM内存和GC状态
  • 接口响应时间P99
  • 微服务间调用链路

在实际项目中,这套配置方案已经稳定支持了日均百万级请求的系统。记得定期检查Oracle的AWR报告和Nginx的access.log,这些日志能帮助发现潜在性能瓶颈。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询