Nacos单机安装

采用的版本是Nacos Release 2.3.0 (Nov 30, 2023) · alibaba/nacos · GitHub

依赖于jdk,要先安装好jdk1.8+。

修改配置

下载解压后,修改配置文件:conf/application.properties。

nacos.core.auth.plugin.nacos.token.secret.key

官方文档Nacos 快速开始的部分描述,如下:

3.修改配置文件

在2.2.0.1和2.2.1版本时,必须执行此变更,否则无法启动;其他版本为建议设置。

修改conf目录下的application.properties文件。

设置其中的nacos.core.auth.plugin.nacos.token.secret.key值,详情可查看鉴权-自定义密钥.

注意,文档中的默认值SecretKey012345678901234567890123456789012345678901234567890123456789VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg=为公开默认值,可用于临时测试,实际使用时请务必更换为自定义的其他有效值。

这里选的2.3版本,所以nacos.core.auth.plugin.nacos.token.secret.key一定要自己设置。

官方文档Authorization的"服务端如何开启鉴权"->"非Docker环境"部分的描述,如下:

服务端如何开启鉴权

非Docker环境

按照官方文档配置启动,默认是不需要登录的,这样会导致配置中心对外直接暴露。而启用鉴权之后,需要在使用用户名和密码登录之后,才能正常使用nacos。

开启鉴权之前,application.properties中的配置信息为:

### If turn on auth system:
nacos.core.auth.enabled=false

开启鉴权之后,application.properties中的配置信息为:

### If turn on auth system:
nacos.core.auth.system.type=nacos
nacos.core.auth.enabled=true

自定义密钥

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

注意:

  1. 文档中提供的密钥为公开密钥,在实际部署时请更换为其他密钥内容,防止密钥泄漏导致安全风险。
  2. 在2.2.0.1版本后,社区发布版本将移除以文档如下值作为默认值,需要自行填充,否则无法启动节点。
  3. 密钥需要保持节点间一致,长时间不一致可能导致403 invalid token错误。
### The default token(Base64 String):
nacos.core.auth.default.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789

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

自定义密钥时,推荐将配置项设置为Base64编码的字符串,且原始密钥长度不得低于32字符。例如下面的的例子:

### The default token(Base64 String):
nacos.core.auth.default.token.secret.key=VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg=

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

注意:鉴权开关是修改之后立马生效的,不需要重启服务端。动态修改token.secret.key时,请确保token是有效的,如果修改成无效值,会导致后续无法登录,请求访问异常。

这里说明了这个nacos.core.auth.plugin.nacos.token.secret.key具体如何设置,就是推荐设置为1个字符串的Base64编码,要求原始字符串长度不低于32字符,注意是原始字符串长度,不是编码后的长度。

Base64编码可以用这个:Base64在线加密解密-在线Base64加密解密工具-Base64编码解码工具

举例,用Base64编码:

secretkey1234567891011121314151617 => c2VjcmV0a2V5MTIzNDU2Nzg5MTAxMTEyMTMxNDE1MTYxNw==

nacos.core.auth.server.identity.key、nacos.core.auth.server.identity.value

这两个用默认值即可,或者自己设置。这两个还是要设置的,不设置会报错。

默认值在这里,Authorization

Nacos单机安装_第1张图片

汇总

一共修改了这几个参数:

nacos.core.auth.system.type=nacos
nacos.core.auth.enabled=true
nacos.core.auth.server.identity.key=serverIdentity
nacos.core.auth.server.identity.value=security
nacos.core.auth.plugin.nacos.token.secret.key=自己设置的字符串Base64编码(注意原字符串长度大于32)

启动

参考Nacos 快速开始的这部分:

Linux/Unix/Mac
启动命令(standalone代表着单机模式运行,非集群模式):
sh startup.sh -m standalone

可以修改启动命令startup.sh中的模式,改为standalone,之后启动就不用带-m standalone

Nacos单机安装_第2张图片

启动:

在这里插入图片描述

成功的话,查看日志文件:

Nacos单机安装_第3张图片

点击进入,是这个样子:

Nacos单机安装_第4张图片

输入用户名密码,默认都是nacos,进入后如下:
Nacos单机安装_第5张图片

可能的报错

关于libstdc++.so.6
/tmp/librocksdbjni7062971986421308051.so: libstdc++.so.6: cannot open shared object file: No such file or directory

参考libstdc++.so.6: cannot open shared object file: No such file or directory问题的解决-CSDN博客

权限认证失败 没有命名空间的访问权限

Nacos单机安装_第6张图片

链接后面的参数有namespace,估计是要配命名空间,把后面的参数都删掉:http://xxx:8848/nacos/index.html#/login,这样就行了。

用户名密码

默认都是nacos。要修改的话,在界面修改,或者到nacos数据库中修改。

界面修改

Nacos单机安装_第7张图片

数据库修改

需要配置数据库,数据库配置参考官方文档:Nacos支持三种部署模式,如下:

单机模式支持mysql

在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力,具体的操作步骤:

  • 1.安装数据库,版本要求:5.6.5+
  • 2.初始化mysql数据库,数据库初始化文件:mysql-schema.sql
  • 3.修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。
spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos_devtest
db.password=youdontknow

再以单机模式启动nacos,nacos所有写嵌入式数据库的数据都写到了mysql

这里需要自己装好mysql,然后创建数据库nacos_devtest(其他名字也可以),运行conf/mysql-schema.sql的sql。运行完如下:
Nacos单机安装_第8张图片

注意,nacos2.3版本的配置文件这里是这样:

### Deprecated configuration property, it is recommended to use `spring.sql.init.platform` replaced.
# spring.datasource.platform=mysql
spring.sql.init.platform=mysql

就是说在nacos2.3版本,“spring.datasource.platform=mysq"配置已经弃用了,要用下面的"spring.sql.init.platform=mysql”,否则会出错。

密码修改,参考Nacos修改密码 - Antony_hubei - 博客园。
有错误帮忙指正,谢谢。

你可能感兴趣的:(其他,微服务)