若依管理系统使用已有 Nacos 部署流程整理

背景

玩了一下开源项目 RuoYi 管理系统Cloud 版,卡住的地方是:它用到了 nacos 配置管理,如果用的 nacos 环境是单机且是内置数据库的话,该怎么配置呢?

本文整理本机启动 RuoYi Cloud 应用本地部署的过程,关键两个点:

  1. 使用已有的 Nacos 环境且无数据库的版本,需要手动创建需要的配置文件。
  2. nacos 配置有认证,需要在 bootstrap.yml 配置中添加 nacos 的账号和密码。
  3. 思考一个问题,Web 应用使用 https 部署的时候,前端敏感信息如 username、password 等信息,是否可以不加密提交呢?

准备工作

  1. 下载 若依管理系统源码 后,在本地解压。
  2. 使用 sql 文件夹的脚本创建数据库,它里面用到三个库, ry-cloud【管理系统库】, ry-config【nacos 配置管理库】,ry-seata【分布式事务管理】。quartz.sql 可以用 ry-cloud 库,编辑脚本,在行首加上 use ry-cloude; ,其他两个库,先创建,但是可以不用。

Nacos 配置创建

官方部署文档里面,部署 nacos 时使用 mysql 数据库版本,且数据库就用 sql 里面的 ry-config 数据库,这样的话,直接通过脚本初始化了全部配置。

但是,对于已经有的 nacos 环境,该怎么办呢?数据库版本的话,可以直接导入配置管理的数据。对于 nacos 非数据库部署方式来说,就需要手动创建配置了。

第一步 ,nacos 系统中为当前项目创建一个命名空间 ry

第二步 ,打开 ry-config 数据库中 config_info 表中的数据,确定 data_id 和内容: 第三步 ,在 ry 命名空间下,逐个以 data_id 为配置名称,content 为内容创建配置。 第四步,逐个点开配置进行修改,主要是 Redis 、datasource 配置,改为我们实际环境的信息。

优化建议 因为 application-dev.yml 配置是所有模块共享的,所以可以将 Redis 和 datasource 配置统一放到这个配置文件中:

后端服务启动

在 IDEA 中导入项目源码后,需要针对每个组件的 bootstrap.yml ,修改 nacos 配置中心和注册中心的地址、帐号和密码,默认项目中都没有帐号和密码的

根据需要启动组件进行修改,必须启动的组件有:

  1. ruoyi-gateway
  2. ruoyi-modules/ruoyi-system
  3. ruoyi-auth

针对这三个组件,逐个修改 bootstrap.yml 配置:

yml 复制代码
  cloud:
    nacos:
      discovery:
        # 服务注册地址
        server-addr: IP:port
        namespace: ry
        username: nacos
        password: xxx
      config:
        # 配置中心地址
        server-addr: IP:port
        namespace: ry
        username: nacos
        password: xxx
        # 配置文件格式
        file-extension: yml
        # 共享配置
        shared-configs:
          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

对nacos 注册中心和配置中心,分别添加 namespace、username、password 三项配置。

然后就可以逐个启动后台服务了,启动后在 nacos 注册中心查看服务列表:

前端安装及启动

首先,进入 ruoyi-ui 前端目录,在命令行执行安装命令:

bash 复制代码
npm install --registry=https://registry.npmmirror.com

再以开发模式启动:

bash 复制代码
npm run dev

最后访问系统首页:

系统服务监控

「系统监控-Admin控制台」它直接用的 SpringBoot Admin 功能,通过@EnableAdminServer 实现的。 访问的账号和密码是在 ruoyi-monitor-dev.yml 配置中,可以按需要修改。 进入服务监控页面:

启示录

想到公司一个流量采集产品,它能采集 http 流量,但是对 https 流量还是没有办法的。那么我们在 Web 应用中,如果直接部署为 https 协议,是不是不用对敏感表单加密了呢?

这么多年前端对敏感信息如username、password 等信息,都是在前端加密后再提交的。但是这个开源项目的登录,以及 SpringBoot Admin 的登录,都是直接提交明文信息的 ,为什么呢? 是加密传输复杂呢,还是明文传输没危险呢?以我这么多年的开发经验来说,前端明文传输敏感信息,终归是不妥的。

PS:今日立冬!人不能同时拥有青春和对青春的感受,何止是青春呐!

相关推荐
颜酱18 分钟前
# 02 | 搭骨架:用 LangGraph 编排 12 步工作流(思路)
前端·人工智能·后端
颜酱19 分钟前
02 | 搭骨架:用 LangGraph 编排 12 步工作流
前端·人工智能·后端
嘉伟桑1 小时前
Python调用电价API返回JSON示例:分时电价、现货电价和字段解析
后端
武子康2 小时前
Shippy:确定性工具、会话级 Sandbox 与 Live-Data Eval(4 类收敛 + 7 步实现方案 + 6 类评测指标)
前端·人工智能·后端
我叫黑大帅2 小时前
我为什么单一消费者的场景下,要用 Redis List 当消息队列?
redis·后端·面试
AskHarries2 小时前
文件上传系统
后端
止语Lab3 小时前
好的 DX 不等于少写代码——三种语言的摩擦力设计课
后端
吃饱了得干活3 小时前
别再手动解析 LLM 输出了!LangChain 四种结构化输出方案对比
后端·python·langchain
程序员天天困3 小时前
Arthas trace 命令怎么用?一行定位最慢那行代码
jvm·后端
Huiturn3 小时前
GPT 5.6 连续编码 10 小时,纯 Python 啃下 Word 二进制格式——doc2docx 实现拆解
后端