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
### 开启鉴权功能
nacos.core.auth.enabled=true
nacos.core.auth.caching.enabled=true自定义密钥
开启鉴权之后,你可以自定义用于生成 JWT 令牌的密钥,application.properties 中的配置信息为:
### 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 加密
集群配置
下面两个配置,默认为空,集群部署时, Nacos 的配置文件都必须一样
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 地址、用户名、密码和端口号
#*************** 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=root2 创建数据库和表 数据库表: conf/nacos-mysql.sql
Nacos 集群化配置
集群文件修改
配置文件 cluster.conf
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 没有那个文件或目录。解决方法:
sed -i 's/\r$//' startup.sh2 没有执行权限:
chmod +x startup.sh拓展
nacos 服务端默认端口是 8848,此外还需要对外暴露 9849 和 9849 两个端口。不然 RPC 连接的情况下, 会出现 com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException 异常
剑鸣秋朔