Skip to content
章节导航

Nacos 环境搭建

nacos 官网

https://nacos.io/zh-cn/index.html

下载地址: https://github.com/alibaba/nacos/tags

配置 Nacos 鉴权

目前使用的是 2.2.3 版本, 需要自行配置鉴权 key, 老版本不需要, 但是存在鉴权漏洞

开启鉴权

将 nacos.core.auth.enabled 设置成 true

shell
### 开启鉴权功能
nacos.core.auth.enabled=true
nacos.core.auth.caching.enabled=true

自定义密钥

开启鉴权之后,你可以自定义用于生成 JWT 令牌的密钥,application.properties 中的配置信息为:

shell
### 2.1.0 版本后
nacos.core.auth.plugin.nacos.token.secret.key=VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg=

注意:

  • 文档中提供的密钥为公开密钥,在实际部署时请更换为其他密钥内容,防止密钥泄漏导致安全风险。
  • 在2.2.0.1版本后,社区发布版本将移除以文档如下值作为默认值,需要自行填充,否则无法启动节点。
  • 密钥需要保持节点间一致,长时间不一致可能导致 403 invalid token 错误。
  • 自定义密钥时,推荐将配置项设置为 Base64 编码的字符串,且原始密钥长度不得低于 32 字符
java Base64 加密
public static void main(String[] args) {
        String str = "FlyCloudNacosSecretKey_05678Auth!@#";
        System.err.println("原始长度: " + str.length());
        String encodedString = Base64.getEncoder().encodeToString(str.getBytes());
        System.err.println("加密后: " + encodedString);
    }

在线生成 Base64 加密

https://base64.us/

集群配置

下面两个配置,默认为空,集群部署时, Nacos 的配置文件都必须一样

shell
nacos.core.auth.server.identity.key=fly
nacos.core.auth.server.identity.value=itdachen

启动 Nacos

Linux / CentOS 启动单机版 Nacos

./startup.sh -m standalone

Windows 启动单机版 Nacos

  • 启动方式一: startup.cmd -m standalone

  • 启动方式二: 修改配置文件后直接双击 startup.cmd

set MODE="standalone"

启动成功之后访问地址: http://127.0.0.1:8848/nacos/index.html#/login 默认登录账号及密码: nacos / nacos

Nacos 持久化配置

配置文件: conf/application.properties

1 修改配置, 指定 MySql 地址、用户名、密码和端口号

html
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
### 指定数据源为 mysql
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=root

2 创建数据库和表 数据库表: conf/nacos-mysql.sql

Nacos 集群化配置

集群文件修改

配置文件 cluster.conf

shell
192.168.232.1:8850
192.168.232.1:8860
192.168.232.1:8870
  • 在nacos的解压目录 nacos/conf 目录下,有配置文件 cluster.conf,请每行配置成 ip:port。(请配置3个或3个以上节点)
  • 同一个 IP, 不要配置两个相连的端口,否则中间的端口无法启动。
  • 集群必须要有能同时访问到的数据源可持久化方式

启动集群

逐一启动三个项目,启动方式: ./startup.sh, 注意: 没有后面的 --m standalone

http://127.0.0.1:8850/nacos/index.html#/login

http://127.0.0.1:8860/nacos/index.html#/login

http://127.0.0.1:8870/nacos/index.html#/login

项目启动之后, 进入 nacos 后台, 查看集群节点信息,三个节点, 访问任何一个节点都可以

Linux / CentOS 启动时可能会出现的问题

1 没有那个文件或目录。解决方法:

html
sed -i 's/\r$//' startup.sh

2 没有执行权限:

html
chmod +x startup.sh

拓展

nacos 服务端默认端口是 8848,此外还需要对外暴露 9849 和 9849 两个端口。不然 RPC 连接的情况下, 会出现 com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException 异常