Windows11下载安装nacos(2.3.0)详解

news2024/9/22 21:33:27

一、环境要求

windows7以上

jdk8及以上版本,并且配置了JAVA_HOME环境变量

二、nacos下载解压

release版本地址:Releases · alibaba/nacos · GitHub

 下载后解压即可,上面的tar.gz是linux版本 

 解压后如下

 nacos自己内置有数据库derby,我用的是自己本机安装的mysql数据库

先在本地mysql服务器创建有一个名字为nacos的数据库

然后打开脚本/conf/mysql-schema.sql,复制到nacos数据库中执行

 执行完后,一共有12张表

接着需要改下配置文件

找到文件/conf/application.properties,用notepad++或记事本打开

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

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

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

这几行配置本来是注释的,前面有#,放开,配置上的 user和password是你本机mysql的用户名和密码

编辑/bin/startup.cmd,注意不要双击,右键编辑,启动模式改成单机模式

三、启动nacos

双击starup.cmd

四、nacos鉴权详细探索

到这里nacos已经可以启动使用了,之前用过老版nacos的同学知道,nacos是要输入用户名和密码的,默认都是nacos,但是上面启动却直接打开了页面

查看nacos官方文档:什么是 Nacos

找到一段话

2.2.2版本之前的Nacos默认控制台,无论服务端是否开启鉴权,都会存在一个登录页;这导致很多用户被误导认为Nacos默认是存在鉴权的。在社区安全工程师的建议下,Nacos自2.2.2版本开始,在未开启鉴权时,默认控制台将不需要登录即可访问,同时在控制台中给予提示,提醒用户当前集群未开启鉴权。

在用户开启鉴权后,控制台才需要进行登录访问。 同时针对不同的鉴权插件,提供新的接口方法,用于提示控制台是否开启登录页;同时在2.2.3版本后,Nacos可支持关闭开源控制台,并引导到用户自定义的Nacos控制台,详情可查看Nacos鉴权插件-服务端插件及控制台手册-关闭登录功能

由此知道,2.2.2版本以后默认没有鉴权,不需要输入登录就能直接打开访问

这在生产上是绝对不允许的,所以我们要配置登录鉴权

还是找到文件/conf/application.properties,用notepad++或记事本打开

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

这个是鉴权开关,默认false,修改为true

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

这个是鉴权的token,官方要求至少32位 

有一个工具生成:随机字符串生成 - 程序员工具箱 - 在线工具

 

 注意:这里官方要求是不低于32位,但如果写32位生成的配置上去仍然报错,具体不知道为啥,也许源码判断不止32位吧,总之是搞大一点吧

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

### The two properties is the white list for auth and used by identity the request from other server.
nacos.core.auth.server.identity.key=
nacos.core.auth.server.identity.value=

注意:这两个值默认是没有的,如果不设置这两个配置,打开鉴权开关后,启动nacos,发现报错如下:

扒了源码下来看看,这两个配置在nacos启动的时候就会有校验

 @Postconstruct注解大家应该知道什么意思吧,启动类启动时会自动调用的方法,要求是void,具体解释可自行百度查看用法

里面是一个枚举类定义的错误信息

 按照官方文档给的默认值配置

### The two properties is the white list for auth and used by identity the request from other server.
nacos.core.auth.server.identity.key=serverIdentity
nacos.core.auth.server.identity.value=security

这两个配置值是官方文档给的默认值,可以自己定义,官方文档解释如下

开启鉴权功能后,服务端之间的请求也会通过鉴权系统的影响。考虑到服务端之间的通信应该是可信的,因此在1.2~1.4.0版本期间,通过User-Agent中是否包含Nacos-Server来进行判断请求是否来自其他服务端。

但这种实现由于过于简单且固定,导致可能存在安全问题。因此从1.4.1版本开始,Nacos添加服务身份识别功能,用户可以自行配置服务端的Identity,不再使用User-Agent作为服务端请求的判断标准。

配置好鉴权后打开如下地址:

 http://192.168.0.108:8848/nacos/index.html,可以替换为http://localhosy:8848/nacos/index.html,192.168.0.108是我本机的ip地址,打开地址如下

我用火狐浏览器打开控制台找到报错的请求,选择重发了一下,在请求头header中添加了 

nacos.core.auth.server.identity.key=serverIdentity和nacos.core.auth.server.identity.value=security组成的键值对,发现请求成功了

其实是因为有鉴权没通过,跳转到登录页面了,我通过手动添加header请求头添加身份验证信息,成功跳过鉴权

但是,实际应该打开的是登陆页面地址: http://localhost:8848/nacos/#/login,这里我认为nacos处理是有瑕疵的,startup.cmd启动窗口给的console应该是

console: http://localhost:8848/nacos/#/login,而不是index.html

输入用户名/密码:nacos/nacos 

 

发现左上角没有当前集群没有开启鉴权的提示了 。

五、总结思考

关于nacos.core.auth.server.identity.key和nacos.core.auth.server.identity.value配置的思考

这俩个配置先解释下

在Nacos中,nacos.core.auth.server.identity.key和nacos.core.auth.server.identity.value这两个配置项用于设置Nacos服务器的身份验证信息。
具体来说:
     nacos.core.auth.server.identity.key:这个配置项用于设置身份验证的关键字,通常是一个字符串,例如"nacos"。
     nacos.core.auth.server.identity.value:这个配置项用于设置与关键字对应的身份验证值,通常也是一个字符串,例如"admin"。


这两个配置项的作用是,当客户端尝试连接到Nacos服务器时,服务器会检查请求中的这些信息,如果请求中的关键字和值与服务器的配置匹配,那么服务器就会接受这个请求,否则就会拒绝这个请求。这样可以实现对Nacos服务器的访问控制,保护敏感信息的安全。
以下是一个示例:
假设我们有一个Nacos集群,其中有三个节点,它们的IP地址分别为192.168.0.1、192.168.0.2和192.168.0.3。我们希望只有IP地址为192.168.0.1和192.168.0.2的客户端才能访问Nacos集群。
首先,我们需要在每个节点上分别设置nacos.core.auth.server.identity.key和nacos.core.auth.server.identity.value的值。对于节点192.168.0.1,我们可以将其设置为"nacos",将其对应的值设置为"admin";对于节点192.168.0.2,我们可以将其设置为"nacos",将其对应的值设置为"admin";对于节点192.168.0.3,我们可以将其设置为"nacos",将其对应的值设置为"user"。
然后,我们需要在Nacos的配置文件(application.properties或application.yml)中添加以下配置:


nacos:
  core:
    auth:
      server:
        identity:
          key: nacos
          value: admin

这两个配置是nacos集群之间通信用到的,用于跳过鉴权,且多个集群这两个配置必须保持一致,防止数据错乱 ,或者其他第三方想要访问nacos服务,则需要在请求头header带上配置的key和value

前文已通过火狐浏览器重发请求带上这两个验证了(至于为什么用火狐,因为火狐是中文的,chrome浏览器英文的,我没找到重发按钮在哪。。。)

而我这里是单机模式启动,我认为是不强制需要判断这两个值是否 填写,我已经提了官方issue建议,判断单机模式不需要这个判断

不知道对不对,看看官方是怎么回复的吧

六、nacos注册为windows服务

请看我这篇文章: Nacos注册为windows服务详解_nacos注册成为windows系统服务-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1365498.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[VisualStudioCode]_[VSCODE]_[C/C++开发环境配置-问题解决和补充]

场景 在使用VSCode配置C的开发环境时《VisualStudioCode_C/C开发环境配置[1]》,编译时会发现找不到标准库的std::mutex和std::thread的声明,而这两个的头文件已经引入,什么情况? 无论如何MinGW都是Windows上验证开发C特性比较新的…

005-Zynq基操之如何去玩EMIO接口(走过路过千万不要错过)

文章目录 前言一、EMIO是啥含义二、两种EMIO的使用1.PS端外设引出来的EMIO2.正常的EMIO口3.PS端驱动源码 总结 前言 今天分享这个主要原因是,把最基础的EMIO接口弄清楚咋操作的,咱们就可以做一些由PS端控制PL端的器件小功能,最常见的就是我们…

MySQL 5.7.35下载安装使用_忘记密码_远程授权

文章目录 MySQL 5.7.35下载安装使用_忘记密码_远程授权MySQL下载地址mysql安装点击安装,最好以管理员身份运行选择自定义安装选择64位勾选启动自定义产品执行点击同意点击下一步点击执行下一步配置数据库端口号设置登录密码,如果密码忘记,下面…

Java学习苦旅(二十三)——二叉搜索树

本篇博客将详细讲解二叉搜索树。 文章目录 二叉搜索树概念操作查找插入删除 性能分析 结尾 二叉搜索树 概念 二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树: 若它的左子树不为空,则左子树上所有节点的值都小于根…

解决Docker报错问题:Docker Desktop – Unexpected WSL error

最近因为准备在NAS上通过Docker容器方式安装MYSQL,发现https://hub.docker.com网站被墙了,无法自动安装,同时又找不到靠谱的离线镜像,所以准备在Window上安装Docker,通过电脑的网络代理制作离线镜像再上传到NAS上。 在…

使用即时设计绘制原型设计方便吗?和Axure RP相比怎么样?

对于原型设计,APP 和 Web 都是一样的,因为产品原型是用来确定需求的工具。我们使用这种工具的目的是为了快速迭代,从而深入挖掘和筛选产品的需求。 绘制原型,最重要的原则是:快速、清晰! Axure 工具的优缺…

【搜索引擎】elastic search核心概念

前言 本文不涉及ES的具体安装下载、操作、集群的内容,这部分内容会放在后面一篇文章中。本文只包含ES的核心理论,看完本文再去学ES的细节会事半功倍。 目录 1.由日志存储引出的问题 2.什么是ES? 3.ES的数据结构 4.ES的核心原理 5.联系作…

第11课 利用windows API捕获桌面图像并通过FFmpeg分享

在上一章,我们已经实现了一对一音视频对话功能。在实际应用中,我们常需要把自己的电脑桌面分享给他人以实现桌面共享功能,这种功能在视频会议、在线教学等场景中很常见,这种功能如何实现呢?这节课我们就来解决这个问题…

MySQL练习-DDL语法练习

文章目录 1、数据库操作2、表操作3、DDL数据类型 突然想起来好久没写过SQL了,写一下SQL练习一下😊 个人写sql比较喜欢用小写😁 什么是DDL:DDL是对数据库和表的操作 在这里练习DLL的时候先不添加约束,后面会把约束集中…

Demo:基于elementplus的弹窗嵌套表单进行二次封装

基于elementplus的弹窗嵌套表单进行二次封装 所见即所得&#xff1a;简单封装方便工作 ProForm.vue代码&#xff1a; <!--* Author: 忆往昔* LastEditTime: 2024-01-6 14:36:00* email: 15871856064163.com --> <template><div class"penk-form-contain…

微信小程序:flex常用布局

在我们平时微信小程序开发过程中为了页面能达到设计小伙伴的预期&#xff0c;追求还原度&#xff0c;那我们肯定会使用很多常用的布局方式&#xff0c;那我们今天就介绍一下微信小程序中常用的一些flex布局 1、常用flex布局 /** 水平垂直居中 **/ .flex-center {display: fle…

鸿鹄电子招投标系统源码实现与立项流程:基于Spring Boot、Mybatis、Redis和Layui的企业电子招采平台

随着企业的快速发展&#xff0c;招采管理逐渐成为企业运营中的重要环节。为了满足公司对内部招采管理提升的要求&#xff0c;建立一个公平、公开、公正的采购环境至关重要。在这个背景下&#xff0c;我们开发了一款电子招标采购软件&#xff0c;以最大限度地控制采购成本&#…

普中STM32-PZ6806L开发板(HAL库函数实现-温度传感器DS18B20)

简介 主芯片STM32F103ZET6, 通过引脚PG11 连接DS18B20, 读取DS18B20采集的温度数据;电路原理图 DS18B20电路图 DS18B20 与 主芯片连接引脚 其他知识 DS18B20资料 DS18B20数据手册 DS18B20 简介 单线通讯的温度传感器, 测量温度在-55℃ 到 125℃&#xff0c; 在-10C 到…

[大厂实践] 重新发明后端子集

子集算法有助于优化服务间连接利用率&#xff0c;降低资源使用。但随机或轮询子集算法在动态拓扑环境中会造成较高的连接扰动。本文介绍了谷歌在解决连接扰动方面所做的思考和实践&#xff0c;并介绍了当前最新的Rocksteadier子集算法。原文: Reinventing Backend Subsetting a…

算法的复杂度分析

[王有志](https://www.yuque.com/wangyouzhi-u3woi/dfhnl0/hqrch62un0cc9sp2?singleDoc# 《&#x1f525;快来关注我》)&#xff0c;一个分享硬核Java技术的互金摸鱼侠加入Java人的提桶跑路群&#xff1a;[共同富裕的Java人](https://www.yuque.com/wangyouzhi-u3woi/dfhnl0/n…

pytorch集智-2单车预测器

完整代码在个人主页简介链接pytorch路径下可找到 1 单车预测器1.0 1.1 人工神经元 对于sigmoid函数来说&#xff0c;w控制函数曲线的方向&#xff0c;b控制曲线水平方向位移&#xff0c;w控制曲线在y方向的幅度 1.2 多个人工神经元 模型如下 数学上可证&#xff0c;有限神经…

前端ui库搜集

涟漪动画效果 - MDUI 开发文档, Material Design 前端框架添加涟漪动画效果后&#xff0c;会在点击元素时&#xff0c;产生向外扩散的水波纹效果。https://www.mdui.org/docs/ripple#ripple https://semantic-ui.com/ https://getuikit.com/ https://www.purecss.cn/grids.htm…

iview table 表格合并行鼠标悬停时的高亮

背景&#xff1a; Iview里面的表格没有提供鼠标移入移出的事件。 而且当开启鼠标悬浮高亮的时候会显示异常&#xff0c;并没有高亮合并后的整行&#xff0c;还是高亮子行。 高亮前&#xff1a; 高亮异常情况&#xff1a; 解决后&#xff1a; 解决方案&#xff1a; 一、思路&…

第6章 密码学和对称密钥算法

6.1 密码学基本知识 6.1.1 密码学的目标 安全从业者可借助密码系统实现4个基本目标&#xff1a;保密性、完整性、身份认证和不可否认性。 其中每个目标的实现都需要满足诸多设计要求&#xff0c;而且并非所有密码系统都是为达到所有4个目标而设计的。 下面的小节将详细讲解这…

我的剑,传给能挥舞它的人--量化书籍推荐!

这篇笔记介绍量化入门的参考书目。 前1/4叹为观止&#xff0c;再1/4勉强点赞&#xff0c;再1/4乏善可陈&#xff0c;最后1/4简直不忍卒读。这是我对某本名书的评价&#xff0c;希望你并不会将这句话还给我。“不会的”&#xff0c;我安慰自己。不是文章多好&#xff0c;但你们…