若依管理系统使用已有 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:今日立冬!人不能同时拥有青春和对青春的感受,何止是青春呐!

相关推荐
joinwell526 小时前
没收到回复,再点一次会启动两个 AI 吗?
人工智能·后端
苏三说技术6 小时前
JDK27正式发布,人麻了!
后端
小蒜学长6 小时前
基于RFID技术的仓储管理系统设计(代码+数据库+LW)
java·数据库·spring boot·后端·rfid技术·仓储管理
EatFan7 小时前
一个二维码背后的系统设计:批次生成、绑定、扫码与数据统计怎么做?
java·后端·微信小程序·二维码·qrcode
石小石Orz7 小时前
民间AI排行榜单新鲜出炉,Fable 5.1仅排第三
前端·后端·ai编程
小灰灰搞电子7 小时前
Rust Once 、OnceLock、LazyLock 一次性初始化详解
开发语言·后端·rust
我不会起名字3227 小时前
一天一道算法题(35):电话号码的字母组合
java·数据结构·后端·python·leetcode·go·回溯
星栈8 小时前
ADK-Rust 是什么?Rust 生态新一代 AI Agent 开发套件
后端·agent
盖伦发发8 小时前
业务开发常用设计模式:状态、策略、工厂、适配器、模板方法
后端·软件工程
程序员老赵9 小时前
Docker 部署 XXL-JOB:轻松搭建分布式任务调度平台
后端·docker·开源