目录
- 一、简介
- 二、安装前准备
- 三、下载与安装
- 四、基本配置
- 五、单机模式
一、简介
官网:https://nacos.io/
GitHub:https://github.com/alibaba/nacos
Nacos
是阿里巴巴推出的一个新开源项目,它主要是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
Nacos
提供了一组简单易用的特性集,帮助用户快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos
的关键特性包括:
- 服务发现和服务健康监测:支持基于
DNS
和基于RPC
的服务发现,如Kubernetes Service
、gRPC & Dubbo RPC Service
以及Spring Cloud RESTful Service
等主流服务类型。Nacos
还提供实时的健康检查,以阻止向不健康的主机或服务实例发送请求。这包括传输层(如PING
或TCP
)和应用层(如HTTP
、MySQL
、用户自定义)的健康检查,以及针对复杂云环境和网络拓扑环境的两种健康检查模式:agent
上报模式和服务端主动检测。 - 动态配置服务:
Nacos
允许用户以中心化、外部化和动态化的方式管理所有环境的配置,从而消除了配置变更时重新部署应用和服务的需要。配置中心化管理使实现无状态服务更简单,也使按需弹性扩展服务更容易。 - 动态
DNS
服务:通过支持权重路由,Nacos
能轻松实现中间层负载均衡、更灵活的路由策略、流量控制以及简单数据中心内网的DNS
解析服务。
具体可见官方文档:https://nacos.io/docs/latest/what-is-nacos/
总的来说,Nacos
是一个功能强大的平台,有助于更敏捷和容易地构建、交付和管理微服务平台,适用于以 “服务” 为中心的现代应用架构。
二、安装前准备
从官方文档可知 Nacos
依赖 Java
环境来运行,并且需要 JDK-1.8
可以 java -version
命令来检查是否已经安装了 Java
,如果有打印出 Java
的版本信息则表示已经安装过了
如何在 Linux
上安装 Java
,具体步骤可参见博客:Linux - java 环境配置
服务器建议 2
核 CPU
/ 4G
内存以及以上
在 0.7
版本之前,在单机模式时 nacos
使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7
版本增加了支持 mysql
数据源能力,所以最好也安装一个 mysql
,安装 Mysql
可参考博客:Linux - 安装 MySQL
三、下载与安装
打开 Nacos-GitHub ,点击 Release
可以看到 Nacos
的各版本跟新信息和安装包之类的
每个版本的安装包都在 Assets
这一栏中
目前 nacos
已经更新到 2.3.1
了,这里我就使用最新版的了
Linux
上安装选择 tar.gz
的安装包下载,点击即可下载
PS:直接下载会比较慢,可把链接复制到迅雷上下载
下载完成之后就可以上传到自己的服务器上去了
这里我会先在服务器上创建一个 /soft/nacos
的文件夹用于存放 nacos
的安装包,并进入到该目录下
# 创建 /soft/jenkins 文件夹
mkdir /soft/nacos
# 进入到 /soft/jenkins 文件夹下
cd /soft/nacos
使用 rz
命令将下载好的安装包上传到该目录下
可以用 ls
命令查看是否上传成功
上传成功之后解压该文件
tar -zxvf nacos-server-x.x.x.tar.gz
解压完成之后会在当前目录下生成一个 nacos
的文件夹
到此为止 nacos
的安装就完成了
四、基本配置
nacos
的配置基本上都在 nacos/conf/application.properties
文件中
(1)端口配置
打开 application.properties
文件,默认情况下端口为 8848
修改 server.port
值即可改变端口号
(2)配置数据库信息
修改 application.properties
文件,增加支持 mysql
数据源配置(目前只支持 mysql
),添加 mysql
数据源的 url
、用户名和密码
例如:
同时在 MySql
数据库中执行 mysql-schema.sql
或者 nacos-mysql.sql
文件
(3)开启鉴权
官方参考文档:https://nacos.io/zh-cn/docs/v2/guide/user/auth.html
2.2.2
版本之前的 Nacos
默认控制台,无论服务端是否开启鉴权,都会存在一个登录页;这导致很多用户被误导认为 Nacos
默认是存在鉴权的。在社区安全工程师的建议下,Nacos
自 2.2.2
版本开始,在未开启鉴权时,默认控制台将不需要登录即可访问,同时在控制台中给予提示,提醒用户当前集群未开启鉴权
在用户开启鉴权后,控制台才需要进行登录访问。
在 2.2.0.1
和 2.2.1
版本时,必须执行此变更,否则无法启动;其他版本为建议设置
开启鉴权之前,application.properties
中的配置信息为:
### If turn on auth system:
nacos.core.auth.enabled=false
开启鉴权之后,application.properties
中的配置信息为:
### If turn on auth system:
nacos.core.auth.enabled=true
开启鉴权之后,你可以自定义用于生成 JWT
令牌的密钥,application.properties
中的配置信息为:
### 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
注意:
- 文档中提供的密钥为公开密钥,在实际部署时请更换为其他密钥内容,防止密钥泄漏导致安全风险。
- 在2.2.0.1版本后,社区发布版本将移除以文档如下值作为默认值,需要自行填充,否则无法启动节点。
- 密钥需要保持节点间一致,长时间不一致可能导致403 invalid token错误。
自定义密钥时,推荐将配置项设置为 Base64
编码的字符串,且原始密钥长度不得低于 32
字符。例如下面的的例子:
Base 64
加密解密工具:https://base64.supfree.net/
### 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
在 bin
目录下执行已下命令即可
# 单机模式运行
sh startup.sh -m standalone
启动之后…
这里显示 nacos is starting, you can check the /soft/nacos/nacos/logs/start.out
查看该日志文件
cat /soft/nacos/nacos/logs/start.out
游览器上访问:http://ip:port/nacos/index.html
,ip
是服务器的 ip
地址,port
是启动 nacos
的端口,比如:http://192.163.10.12:8848/nacos/index.html。访问不了先检查防火墙,如果你用的是 云服务器
,可别忘了在云服务器上开放该端口号,ip
使用的是公网 ip
如果没有开启鉴权,页面如下:
如果开启鉴权,页面如下:
默认账户和密码为:
- 账户:
nacos
- 密码:
nacos
登录后可修改密码
- 关闭 nacos
可以以下命令监听 nacos
是否正在运行
netstat -tulnp | grep 8848
在 bin
目录下执行已下命令即可
sh shutdown.sh