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

相关推荐
马剑威(威哥爱编程)1 小时前
2025春招 SpringCloud 面试题汇总
后端·spring·spring cloud
Quantum&Coder2 小时前
Objective-C语言的计算机基础
开发语言·后端·golang
嘿嘿3 小时前
Grafana 快速搭建go-metrics 仪表盘备忘
后端·docker·go
计算机学姐3 小时前
基于微信小程序的民宿预订管理系统
java·vue.js·spring boot·后端·mysql·微信小程序·小程序
Code侠客行3 小时前
Scala语言的编程范式
开发语言·后端·golang
moton20174 小时前
云原生:构建现代化应用的基石
后端·docker·微服务·云原生·容器·架构·kubernetes
何中应5 小时前
Spring Boot中选择性加载Bean的几种方式
java·spring boot·后端
web2u6 小时前
MySQL 中如何进行 SQL 调优?
java·数据库·后端·sql·mysql·缓存
michael.csdn6 小时前
Spring Boot & MyBatis Plus 版本兼容问题(记录)
spring boot·后端·mybatis plus
Ciderw6 小时前
Golang并发机制及CSP并发模型
开发语言·c++·后端·面试·golang·并发·共享内存