Windows11下载安装nacos(2.3.0)详解

一、环境要求

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.mzph.cn/news/606327.shtml

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

相关文章

使用 matlab 求解最小二乘问题

有约束线性最小二乘 其标准形式为: min ⁡ x 1 2 ∥ C x − d ∥ 2 2 \mathop {\min }\limits_x \quad \frac{1}{2}\left\| Cx-d \right\|_2^2 xmin​21​∥Cx−d∥22​ 约束条件为: A ⋅ x ≤ b A e q ⋅ x b e q l b ≤ x ≤ u b \begin{aligned} …

RAG 全链路评测工具 —— Ragas

RAG是目前比较火热的一个概念。对应的应用如雨后春笋般涌出。我们在实际的探索中,可能会有各种各样的优化方案。但是优化是否有用呢?模型影响会有多大呢? 我们需要一把尺子,来做全链路的衡量。才能够得出,到底应该朝哪…

光纤知识总结

1光纤概念: 光导纤维(英语:Optical fiber),简称光纤,是一种由玻璃或塑料制成的纤维,利用光在这些纤维中以全内反射原理传输的光传导工具。 微细的光纤封装在塑料护套中,使得它能够…

程序猿的时间管理和生产力

文章目录 为什么时间管理很重要?如何管理时间?心理维度生理维度技术尺寸 时间管理技巧每周计划基于目标的规划番茄钟为什么是25分钟?番茄钟为什么有效?艾森豪威尔矩阵这一切都是从开发者的角度来看的 也许我从开始学习或从事软件开…

React 入门 - 01

本章内容 目录 1. 简介1.1 初始 React1.2 React 相关技术点1.3 React.js vs Vue.js 2. React 开发环境准备2.1 关于脚手架工具2.2 create-react-app 构建一个 React 项目工程 1. 简介 1.1 初始 React React JS 是 Facebook 在 2013年5月开源的一款前端框架,其带来…

基于Java SSM框架实现实现机房预约系统项目【项目源码+论文说明】

基于java的SSM框架实现机房预约系统演示 摘要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识&#…

2道经典的C语言练习题(解答超详细)

文章目录 每日一言12结语⭐如果发现自己做错了,请不要气馁,做题就是一个查漏补缺的过程。每个人不是天生就会写代码的,给自己一些时间,不要放弃,加油陌生人! 每日一言 当你关注到自己行为背后的意图时&…

centos 8.0 安装sysbench 1.0.17

序号步骤说明执行命令执行结果备注1 下载并解压sysbench-1.0.17.zip sysbench-1.0.17.zip2安装依赖文件 yum install automake libtool -y yum install /usr/include/libpq-fe.h 3安装sysbench cd sysbench-1.0.17 ./autogen.sh ./configure \ --prefix/sysbench \ --with-pgsq…

快乐学Python,Python基础之组织代码「类与对象」

在上一篇文章中,我们了解了函数。这一篇文章我们来了解一下Python中另外一个重要的概念:类与对象。 1、类与对象 (1)类与对象有什么关系? 你可能会奇怪,为什么要叫类与对象呢?是两个不同的东…

Rustdesk本地配置文件存在什么地方?

环境: rustdesk1.1.9 Win10 专业版 问题描述: Rustdesk本地配置文件存在什么地方? 解决方案: RustDesk 是一款功能齐全的远程桌面应用。 支持 Windows、macOS、Linux、iOS、Android、Web 等多个平台。 支持 VP8 / VP9 / AV1 …

Nacos 学习之系列文章

系列文章目录 目录 系列文章目录 文章目录 前言 一、Nacos是什么? 二、Nacos的主要功能 服务发现和服务健康监测 动态配置服务 动态 DNS 服务 三、Nacos 地图 四、Nacos 生态图 总结 前言 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Naco…

白话机器学习的数学-3-评估

1、 模型评估 那我们如何测量预测函数 fθ(x)的正确性,也就是精度呢? 观察函数的图形,看它能否很好地拟合训练数据: 这是只有一个变量的简单问题,所以才能在图上展 示出来。 过像多重回归这样的问题,变量增…

pandas保存style到excel文件中

更多pandas style用法请参考:https://pandas.liuzaoqi.com/doc/chapter8/style.html 示例程序 import numpy as np import pandas as pd# 示例数据 dataframe pd.DataFrame({"date": pd.date_range("2024-01-01", "2024-02-01"),&…

D51+D52|接雨水

503.下一个更大元素ll 初始思路:这样这道题就变成了一道很纯粹的单调栈问题,因为只涉及了一个数组。但又因为这个数组是一个循环数组所以问题又变的有些复杂。 初始思路: 在循环数组的问题中,比较需要考虑的就是数组中最后一个…

web——德州扑克

1.此案例只用于学习 2.未接入游戏规则 HTML代码部分 <!DOCTYPE html> <html><head><meta charset"utf-8"><meta name"viewport" content"widthdevice-width"><meta name"Poker Skin" content&quo…

模式识别实验三

实验三 一  实验名称 感知器设计 二 目的和意义 使用感知器完成线性分类任务 三 操作步骤或算法结构 数据预处理。载入数据文件&#xff08; iris.csv 文件&#xff09;中的数据&#xff0c;并将其分成样本向量矩阵X和样本分类结果向量 G \bf G G。 给 4 4 4 列向量的…

【Vue3】2-5 : 指令系统与事件方法及传参处理

本书目录&#xff1a;点击进入 一、标签属性中的使用 - 指令系统 1.1 那么模板语法是否可以在标签属性中进行使用呢? ▶ 当然可以&#xff1a;使用 指令系统 二、指令系统 2.1 v-bind 2.2 v-on 三、实战 3.1 methods 选项 3.2 $event语法 一、标签属性中的使用 - 指令…

RT_Thread 调试笔记:时间相关,时钟管理函数,延时,定时器、 毫秒转换为时分秒 等

说明&#xff1a;记录日常使用 RT_Thread 开发时做的笔记。 持续更新中&#xff0c;欢迎收藏。 1. 延时函数 1. us延时函数 rt_hw_us_delay(rt_uint32_t us);//输如数据是us rt_hw_us_delay(200);//输入数据是us 2. ms延时函数 rt_thread_mdelay(1000);//输入数据是ms 2…

【教学类-综合练习-07】20240102 大4班 综合材料 (涂色类)对称动物面具,对称蝴蝶、头饰等

背景需求 年终了&#xff0c;清理库存&#xff0c;各种打印的题型纸都拿出来&#xff0c;当个别化学习材料 教学过程&#xff1a; 时间&#xff1a;2024年1月2日 班级&#xff1a;大4班 人数&#xff1a;25人 这次混了一点“EBRU湿拓郁金香”的纸片&#xff0c; 裁剪花朵…

从零学Java - String类

Java String类 文章目录 Java String类1 String1.1 常用两种创建方式1.2 比较两种创建方式1.3 字符串不可变性1.4 面试题 2 常用方法2.1 练习 3 可变字符串3.1 常用方法3.2 验证StringBuilder的高效性3.3 练习3.4 面试题: 4 正则表达式4.1 元字符4.2 其他字符4.2.1 预定义字符4…