网站备案填写,网站水印设置作教程,东营做网站优化价格,前端微信公众号开发Nacos是什么#xff1f;有什么功能#xff1f;大家可以自行联网#xff08;推荐 https://cn.bing.com/#xff09;搜索#xff0c;这里就不做介绍了。
简单的看了下官网#xff0c;安装最新版的Nacos#xff08;v2.3.2#xff09;需要使用到JDK#xff08;1.8.0…Nacos是什么有什么功能大家可以自行联网推荐 https://cn.bing.com/搜索这里就不做介绍了。
简单的看了下官网安装最新版的Nacosv2.3.2需要使用到JDK1.8.0和MySQL5.6.5。
首先安装配置JDK这里使用的JDK版本为官方最新的1.8.0_401版本。
将JDK的安装包上传到/usr目录下解压目录授权配置环境变量。
解压和目录授权
# cd /usr
# tar -xzf jdk1.8.0_401-linux-b35.tar.gz
# rm -f ./jdk1.8.0_401-linux-b35.tar.gz
# chmod -R 744 ./jdk1.8.0_401
配置环境变量
将下面的信息配置到/root/.bash_profile中然后source .bash_profile生效。
JAVA_HOME/usr/jdk1.8.0_401
export JAVA_HOMECLASSPATH.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
export CLASSPATHPATH$JAVA_HOME/bin:$PATH:/usr/local/bin:$HOME/bin
export PATH安装配置MySQL这里给大家推荐我之前写的一篇文章里面有详细的步骤说明。
【MySQL】CentOS 7.9安装、使用MySQL-5.7.39二进制版_mysql 5.7.39-log-CSDN博客https://blog.csdn.net/cnskylee/article/details/125989553MySQL数据库安装完成后还需要导入nacos的表不过第一步还得去官网下载最新版的安装包sql脚本在安装包里面。这里直接提供安装包的下载地址。
https://download.nacos.io/nacos-server/nacos-server-2.3.2.zip
下载完成后用Linux系统自带的 rz 命令或者 WinSCP 这样的SSH工具将安装包上传到服务器的/data目录下然后用unzip解压即可。
bin目录启停脚本目录conf配置文件目录targetnacos的主程序包目录
进入conf目录下可以发现有个叫 mysql-schema.sql 的脚本文件。
登录到mysql导入这个脚本文件。
# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7
Server version: 5.7.44-enterprise-commercial-advanced MySQL Enterprise Server - Advanced Edition (Commercial)Copyright (c) 2000, 2023, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type help; or \h for help. Type \c to clear the current input statement.mysql show databases;
--------------------
| Database |
--------------------
| information_schema |
| mysql |
| performance_schema |
| sys |
--------------------
4 rows in set (0.00 sec)mysql use mysql;
Database changedmysql source /data/nacos/conf/mysql-schema.sqlmysql show tables;
---------------------------
| Tables_in_mysql |
---------------------------
| columns_priv |
| config_info |
| config_info_aggr |
| config_info_beta |
| config_info_tag |
| config_tags_relation |
| db |
| engine_cost |
| event |
| func |
| general_log |
| group_capacity |
| gtid_executed |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| his_config_info |
| innodb_index_stats |
| innodb_table_stats |
| ndb_binlog_index |
| permissions |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| roles |
| server_cost |
| servers |
| slave_master_info |
| slave_relay_log_info |
| slave_worker_info |
| slow_log |
| tables_priv |
| tenant_capacity |
| tenant_info |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
| users |
---------------------------
43 rows in set (0.00 sec)导入完成后exit 退出 mysql 数据库即可。
回到 nacos 的配置目录编辑 application.properties完善 nacos 连接 mysql 数据库的配置字段。
放开字段注释修改url里面的IP和端口配置设置MySQL的数据库连接用户名和密码。
### Count of DB:db.num1### Connect URL of DB:db.url.0jdbc:mysql://192.168.223.198:3306/nacos?characterEncodingutf8connectTimeout1000socketTimeout3000autoReconnecttrueuseUnicodetrueuseSSLfalseserverTimezoneUTCdb.user.0rootdb.password.0PasswordYouSet
除了以上配置我还修改了Nacos的默认端口为90118848听着很不爽^.^另外还修改了 standalone 模式下的JVM参数。
# conf/application.properties
server.port9011# bin/startup.sh
JAVA_OPT${JAVA_OPT} -Xms1024m -Xmx1024m -XX:MetaspaceSize512m -XX:MaxMetaspaceSize512m
启动Nacos
# cd /data/bin
# ./startup.sh -m standalone
# ps -ef| grep nacos| grep -v grep
root 43785 1 3 15:00 pts/0 00:01:25 /usr/jdk1.8.0_401/bin/java -Djava.ext.dirs/usr/jdk1.8.0_401/jre/lib/ext:/usr/jdk1.8.0_401/lib/ext -Xms1024m -Xmx1024m -XX:MetaspaceSize512m -XX:MaxMetaspaceSize512m -Dnacos.standalonetrue -Dnacos.member.list -XX:UseConcMarkSweepGC -XX:UseCMSCompactAtFullCollection -XX:CMSInitiatingOccupancyFraction70 -XX:CMSParallelRemarkEnabled -XX:SoftRefLRUPolicyMSPerMB0 -XX:CMSClassUnloadingEnabled -XX:SurvivorRatio8 -Xloggc:/data/nacos/logs/nacos_gc.log -verbose:gc -XX:PrintGCDetails -XX:PrintGCDateStamps -XX:PrintGCTimeStamps -XX:UseGCLogFileRotation -XX:NumberOfGCLogFiles10 -XX:GCLogFileSize100M -Dloader.path/data/nacos/plugins,/data/nacos/plugins/health,/data/nacos/plugins/cmdb,/data/nacos/plugins/selector -Dnacos.home/data/nacos -jar /data/nacos/target/nacos-server.jar --spring.config.additional-locationfile:/data/nacos/conf/ --logging.config/data/nacos/conf/nacos-logback.xml --server.max-http-header-size524288 nacos.nacos
通过浏览器访问9011端口上下文路径为/nacos
http://192.168.223.198:9011/nacos
第一次登录没有配置用户鉴权访问上面的URL即可打开页面。
但是在生产环境这样裸奔肯定是不被允许的因此还是要配置登录用户的。但是没想到官方文档写的太xxx导致踩了一些坑浪费了几个小时的时间查阅了一些资料偶然修改了一处配置才发现原来是这样……
下面给大家分享下鉴权配置的坑
按照官方文档写的简直WTF写看起来的高大上但是估计也只有作者自己能看明白是什么意思。我这里就直接上配置了把坑给大家展示下。
### If turn on auth system:
nacos.core.auth.enabledtrue### Since 1.4.1, worked when nacos.core.auth.enabledtrue and nacos.core.auth.enable.userAgentAuthWhitefalse.
### The two properties is the white list for auth and used by identity the request from other server.
nacos.core.auth.server.identity.keynacos
nacos.core.auth.server.identity.valuepasswordIselfdefine### The default token (Base64 String):
nacos.core.auth.plugin.nacos.token.secret.keyaXQnc215c2VjcmV0dGVzdG9mYmFzZTY0Y2hhcnNldC4
nacos.core.auth.enabledtrue // 配置为truenacos.core.auth.server.identity.keynacos // 我以为的默认用户名nacos.core.auth.server.identity.valuepasswordIselfdefine // 我以为的自定义用户密码nacos.core.auth.plugin.nacos.token.secret.key // 这个配置比较烧脑官方文档的意思是需要将一个不低于32个字符长度的字符串转换为base64后的编码。大家可以在网上找到这样的网站随便输入一个32个字符的字符串转换为base64后的编码然后配置到后面即可。如下图所示 好了上面的配置好以后第一个坑就出来了重启是看到登录页面但是会在登陆页面看到【没有 命名空间的访问权限】的报错另外使用配置的nacos用户名和密码登录一直提示用户名和密码不正确。 查阅了一些资料说需要在nacos的界面里面配置什么命名空间好吧
将nacos.core.auth.enabled设置为false以后重启nacos然后在不需要登录的状态下自定义了一个命名空间如下所示 然后再次将nacos.core.auth.enabled设置为true重启nacos发现报错依旧。
后来又查阅了一些资料突然萌生一个想法将 nacos.core.auth.server.identity.key 和 acos.core.auth.server.identity.value 都设置为nacos重启这次发现可以登录成功了。然后我突然就明白了原来nacos是这个控制台的默认用户名和密码机制和grafana相似默认用户名和密码都是admin只不过grafana在首次登录时会强制用户修改默认密码不知道官方为什么不在文档里面明确说明这个密码问题
登录成功后可以在左边的权限控制-用户列表菜单或者通过右上角的nacos菜单来修改用户的密码。 修改后登出使用新密码登录成功。
下面为nacos这个用户来绑定权限如下所示为【角色名】配置指定【资源】的【动作】。 配置好如下所示 再次登出刷新页面发现还是有访问权限的报错弹框然后我手动在默认的 URL 里面将namespace指定为我之前创建的mynamespace然后再刷新弹框提示没有了。
奇葩真的奇葩这个设计
为什么使用 http://192.168.223.198:9011/nacos 登录会自动添加后面这些参数
http://192.168.223.198:9011/nacos/#/login?namespacepageSizepageNo
但是用这个 http://192.168.223.198:9011/nacos/#/login 登录就不会增加后面的红色字体参数。 给官方的建议如果官方开发人员能看见的话建议将在普通用户登录时查询用户的角色以及应用的命名空间普通用户只能看到自己用户名绑定的命名空间。管理员登录无需指定和判断命名空间可以默认看见所有的命名空间以及用户。