文章目录
1 What is Nacos?
Nacos
是阿里巴巴2018年7月推出来的一个开源项目,是一个更易于构建云原生应用的动态服务注册与发现
、配置管理
和服务管理平台
。
Nacos 属于Spring cloud alibaba下的一个组件,Nacos致力于快速实现动态服务注册与发现、服务配置、服务元数据及流量管理。
Nacos 约等于spring cloud eureka
(注册中心)+ spring cloud config
(配置中心),所以说,现在Nacos的使用是一种趋势。
2 Nacos运行环境部署
2.1 下载Nacos安装包
使用以下链接,下载Nacos最新的二进制压缩包(可以按需下载合适的版本)
https://github.com/alibaba/nacos/releases
有时候直接点击下载链接比较慢,或者下载失败,可以在云服务器(比如阿里云服务器)上,直接使用wget
命令下载安装包,可能速度会快一些
wget https://github.com/alibaba/nacos/releases/download/1.3.2/nacos-server-1.3.2.tar.gz
wget https://github.com/alibaba/nacos/releases/download/2.2.1/nacos-server-2.2.1.tar.gz
这里,笔者以最新的1.3.2
版本为例,介绍下Nacos Server的部署过程。
2.2 解压Nacos压缩包
使用以下命令,解压下载下来的Nacos最新的二进制压缩包
tar -zxvf nacos-server-1.3.2.tar.gz -C /usr/local
tar -zxvf nacos-server-2.2.1.tar.gz -C /usr/local
解压后的目录,如下图所示:
2.3 启动Nacos Server
-
进入安装目录下的bin目录下
cd /usr/local/nacos/bin
-
启动nacos server
./startup.sh -m standalone
注意:
这里是单机运行,单机环境必须带-m standalone
参数启动,否则无法启动,不带参数启动的是集群环境出现下图所示内容,说明服务启动成功了:
2.4 停止Nacos Server
-
使用以下命令,获取nacos server进程
ps -ef | grep nacos
-
kill 进程pid,来关闭nacos server
kill pid
,如果关不掉,可以使用kill -9 pid
强制关闭
至此,Nacos Server基础的单机版运行环境,就部署完成了。
2.5 查看启动日志
nacos server运行后,可以查看相关日志:
cat /usr/local/nacos/logs/start.out
2020-08-22 11:53:26,969 INFO Exposing 2 endpoint(s) beneath base path '/actuator'
2020-08-22 11:53:27,004 INFO Initializing ExecutorService 'taskScheduler'
2020-08-22 11:53:27,123 INFO Tomcat started on port(s): 8848 (http) with context path '/nacos'
2020-08-22 11:53:27,129 INFO Nacos Log files: /usr/local/nacos/logs
2020-08-22 11:53:27,131 INFO Nacos Log files: /usr/local/nacos/conf
2020-08-22 11:53:27,132 INFO Nacos Log files: /usr/local/nacos/data
2020-08-22 11:53:27,132 INFO Nacos started successfully in stand alone mode. use embedded storage
2.6 设置快速启动Nacos服务(非必要操作)
笔者比较偷懒,有时候服务特别多,比如nacos、redis、mysql、kafka、zookeeper、nginx等等,启动服务有时候需要切换到指定到相关的服务可执行命令的那个目录,才可以启动服务。
比如刚才启动nacos时,需要先进入到安装目录cd /usr/local/nacos/bin
,在执行start,每次频繁的切换进入不同的服务目录,比较麻烦。
一般情况下,会设置使用systemctl
命令,快速启动,笔者这里换一种思路,使用shell脚本的方式,统一管理服务的启动
。
-
创建
server-manager
目录
mkdir /opt/server-manager
-
创建
nacos-start脚本
,vim nacos-start.sh
,填充启动的内容如下#!/bin/sh cd /usr/local/nacos/bin ./startup.sh -m standalone
-
为脚本
nacos-start.sh
赋予可执行权限
未设置权限前:
设置权限后:
以后,就不需要再到nacos安装目录启动服务了,直接去服务管理目录/opt/server-manager
操作即可。
这样做的好处是可以统一在一个目录下启动停止不同的组件服务了,以后再也不用频繁切换不同的目录了,这里可以先停止然后再启动服务
3 访问Nacos Server首页
nacos server运行成功后,可以通过以下地址,访问nacos首页:
http://ip:8848/nacos
默认用户名密码: nacos/nacos
注:
如果服务器开启了防火墙,需要开放8848
端口才能访问
笔者使用的是阿里云服务器,不仅需要配置安全组,防火墙也需要开放8848端口
-
需要配置安全组
-
如果你的服务器或者虚拟机开启了防火墙,需要开放8848端口
开启8848防火墙端口
firewall-cmd --zone=public --add-port=8848/tcp --permanent
重新加载防火墙配置
firewall-cmd --reload
访问成功后的页面,如下图所示:
注:NVDB-CNVDB-2023674205漏洞:Nacos 是一款构建云原生应用的服务管理平台,其在默认配置下未对密钥进行修改,导致攻击者可以绕过密钥认证进入后台,造成系统受控等后果。
具体表现为,在application.properties文件中的配置项具有默认值,而多数用户不修改导致。nacos.core.auth.default.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789
新版本中,nacos.core.auth.default.token.secret.key被弃用,取而代之的是nacos.core.auth.plugin.nacos.token.secret.key,且没有默认值。直接启动将会报错如下(报错信息夹杂在繁多的错误提示中,很不明显)
自定义密钥时,推荐将配置项设置为Base64编码的字符串,且原始密钥长度不得低于32字符。
可以通过以下地址生成密钥。https://base64.us/
详情参考:https://nacos.io/zh-cn/docs/v2/guide/user/auth.html
4 小结
Nacos作为当下分布式环境下,最流行的服务管理和服务配置中心,Nacos使用起来相对还是比较简单的,而且UI界面也是很友好的,社区也很活跃,所以,未来使用Nacos应该是一个主流趋势。
好啦,本篇Nacos Server基础运行环境搭建,就先介绍到这里了,后续会详细的介绍下,如何在实际开发中应用Nacos Server,敬请期待~
写博客是为了记住自己容易忘记的东西,另外也是对自己工作的总结,希望尽自己的努力,做到更好,大家一起努力进步!
如果有什么问题,欢迎大家评论,一起探讨,代码如有问题,欢迎各位大神指正!
给自己的梦想添加一双翅膀,让它可以在天空中自由自在的飞翔!