AnolisOS 8 下nacos安裝配置

1、GitHub下載Nacos安裝包

(https://github.com/alibaba/nacos/releases)
這次下載的版本:https://github.com/alibaba/nacos/releases/tag/2.3.2
https://github.com/alibaba/nacos/releases/download/2.3.2/nacos-server-2.3.2.tar.gz

image.png

#根據(jù)版本修改路徑中的2.3.2
[root@anolis8 ~]# wget https://github.com/alibaba/nacos/releases/download/2.3.2/nacos-server-2.3.2.tar.gz
[root@anolis8 ~]# tar -zxvf nacos-server-2.3.2.tar.gz
nacos/LICENSE
nacos/NOTICE
nacos/target/nacos-server.jar
nacos/conf/
nacos/conf/derby-schema.sql
nacos/conf/1.4.0-ipv6_support-update.sql
nacos/conf/application.properties.example
nacos/conf/nacos-logback.xml
nacos/conf/mysql-schema.sql
nacos/conf/cluster.conf.example
nacos/conf/application.properties
nacos/bin/startup.sh
nacos/bin/startup.cmd
nacos/bin/shutdown.sh
nacos/bin/shutdown.cmd

[root@anolis8 ~]# mv nacos /usr/local/
[root@anolis8 ~]# cd /usr/local/nacos/conf/
[root@anolis8 conf]# ll
總用量 104K
-rw-r--r-- 1 502 games 1.2K  2月  6 09:58 1.4.0-ipv6_support-update.sql
-rw-r--r-- 1 502 games  154  2月 27 16:02 announcement_en-US.conf
-rw-r--r-- 1 502 games  127  2月 27 16:02 announcement_zh-CN.conf
-rw-r--r-- 1 502 games  13K  4月 22 10:10 application.properties
-rw-r--r-- 1 502 games  11K  2月  6 09:58 application.properties.example
-rw-r--r-- 1 502 games  670  2月  6 09:58 cluster.conf.example
-rw-r--r-- 1 502 games  300  2月  6 09:58 console-guide.conf
-rw-r--r-- 1 502 games 8.8K  2月  6 09:58 derby-schema.sql
-rw-r--r-- 1 502 games  11K  2月  6 09:58 mysql-schema.sql
-rw-r--r-- 1 502 games  32K  2月  6 09:58 nacos-logback.xml

2、在/usr/local/nacos/conf/下找到mysql-schema.sql,在已經(jīng)安裝好的mysql數(shù)據(jù)庫(kù)中建立數(shù)據(jù)庫(kù),新增用戶名密碼授權(quán),執(zhí)行sql腳本

image.png

數(shù)據(jù)庫(kù)名nacos_config
字符集utf8mb4
排序規(guī)則utf8mb4_general_ci


image.png
image.png

image.png

3、修改conf下的application.properties配置文件

#*************** Config Module Related Configurations ***************#
### 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://172.16.17.210:3306/nacos_232?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=nacos
db.password.0=nacos

注意數(shù)據(jù)庫(kù)版本,是否mysql8以上。
放開(kāi)數(shù)據(jù)庫(kù)配置,并修改為上面定義的數(shù)據(jù)配置信息保存

4、開(kāi)放8848、9848、9849、7848端口

image.png
firewall-cmd --zone=public --add-port=8848/tcp --permanent
firewall-cmd --zone=public --add-port=9848/tcp --permanent
firewall-cmd --zone=public --add-port=9849/tcp --permanent
firewall-cmd --zone=public --add-port=7848/tcp --permanent
systemctl restart firewalld

5、啟動(dòng)nacos

#修改startup.sh在29行修改
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
修改為
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/local/jdk1.8.0_11
--------------------
/usr/local/jdk1.8.0_11 為本機(jī)的 JAVA_HOME
--------------------
cd ../bin
sh startup.sh -m standalone

6、驗(yàn)證(換成自己的IP,默認(rèn)用戶名密碼 nacos/nacos)

http://172.16.17.222:8848/nacos/

image.png

image.png

7、集群配置

在/usr/local/nacos/conf目錄下修改cluster.conf文件
[root@nacos1 conf]# vim cluster.conf
添加如下配置

2024-04-22T10:03:57.892

172.16.17.222:8848
172.16.17.223:8848
172.16.17.224:8848
保存后退出。

8、配置為service服務(wù)

#建立service文件
vim /lib/systemd/system/nacos.service

[Unit]
Description=nacos
After=network.target 
[Service]
Type=forking
ExecStart=/usr/local/nacos/bin/startup.sh
ExecReload=/usr/local/nacos/bin/shutdown.sh
ExecStop=/usr/local/nacos/bin/shutdown.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target

如果是單機(jī)模式這個(gè)語(yǔ)句需要修改為如下,ExecStart=/usr/local/nacos/bin/startup.sh -m standalone

[Unit]
Description=nacos
After=network.target 
[Service]
Type=forking
ExecStart=/usr/local/nacos/bin/startup.sh -m standalone
ExecReload=/usr/local/nacos/bin/shutdown.sh
ExecStop=/usr/local/nacos/bin/shutdown.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target

保存后執(zhí)行以下命令

加載新建的nacos.service
systemctl daemon-reload
設(shè)置nacos.service 為開(kāi)機(jī)啟動(dòng)
systemctl enable nacos.service
開(kāi)啟nacos.service服務(wù)
systemctl start nacos.service
關(guān)閉nacos.service服務(wù)
systemctl stop nacos.service
查看  nacos.service服務(wù)狀態(tài)
systemctl status nacos.service -l

9、其他使用設(shè)置

參考
https://blog.csdn.net/xionglangs/article/details/118145684

10、配置nginx負(fù)載均衡

http://www.itdecent.cn/p/3ab9ef944c65

11、關(guān)于鑒權(quán)

官方文檔
https://nacos.io/zh-cn/docs/v2/guide/user/auth.html

nacos2.3.2版本安裝后默認(rèn)是沒(méi)有開(kāi)啟鑒權(quán)的,也就是訪問(wèn)是不需要賬號(hào)密碼登錄的!可以直接訪問(wèn)。
要開(kāi)啟鑒權(quán)需要根據(jù)官方文檔配置:
修改/usr/local/nacos/conf/application.properties配置文件

#參數(shù)名
nacos.core.auth.enabled   #145行
#默認(rèn)值
false    #默認(rèn)不開(kāi)啟
#功能
是否開(kāi)啟鑒權(quán)功能
改為:nacos.core.auth.enabled=true
-----------------------
#參數(shù)名
nacos.core.auth.system.type=nacos   #142行
#默認(rèn)值
nacos       #可選值ldap
#功能
鑒權(quán)類型
保持默認(rèn)
-----------------------
#參數(shù)名
nacos.core.auth.enable.userAgentAuthWhite
#默認(rèn)值
false    #151行  默認(rèn)false
#功能
是否使用useragent白名單,主要用于適配老版本升級(jí),置為true時(shí)有安全風(fēng)險(xiǎn)
-----------------------
#參數(shù)名
nacos.core.auth.server.identity.key         #155行
#默認(rèn)值
serverIdentity       #(2.2.1后無(wú)默認(rèn)值),默認(rèn)為空
#功能
用于替換useragent白名單的身份識(shí)別key,使用默認(rèn)值有安全風(fēng)險(xiǎn)
-----------------------
#參數(shù)名
nacos.core.auth.server.identity.value     #156行
#默認(rèn)值
security          #(2.2.1后無(wú)默認(rèn)值),默認(rèn)為空
#功能
用于替換useragent白名單的身份識(shí)別value,使用默認(rèn)值有安全風(fēng)險(xiǎn)
-----------------------
#參數(shù)名
nacos.core.auth.plugin.nacos.token.secret.key      #163行
#默認(rèn)值
SecretKey012345678901234567890123456789012345678901234567890123456789(2.2.1后無(wú)默認(rèn)值))    #默認(rèn)為空
#功能
默認(rèn)鑒權(quán)插件用于生成用戶登陸臨時(shí)accessToken所使用的密鑰,使用默認(rèn)值有安全風(fēng)險(xiǎn)
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789
-----------------------
#參數(shù)名
nacos.core.auth.plugin.nacos.token.expire.seconds
#默認(rèn)值
18000    #154行,默認(rèn)18000 
#功能
用戶登陸臨時(shí)accessToken的過(guò)期時(shí)間

修改后的配置片段如圖


image.png

保存退出后,再啟動(dòng)nacos服務(wù)就需要賬號(hào)密碼登錄了,默認(rèn)是賬號(hào)nacos 密碼nacos

image.png

12、nacos.token.secret.key報(bào)錯(cuò)

Nacos要求nacos.token.secret.key密鑰必須為32字節(jié)的Base64編碼字符串(即原始密鑰長(zhǎng)度為32字節(jié)),若配置的密鑰解碼后長(zhǎng)度不足或超過(guò)32字節(jié),SecurityUtil初始化失敗,導(dǎo)致服務(wù)無(wú)法啟動(dòng)。

常見(jiàn)錯(cuò)誤包括使用明文字符串未進(jìn)行Base64編碼、生成的密鑰長(zhǎng)度不正確或復(fù)制時(shí)包含空格。

解決方法是使用合法的32字節(jié)密鑰并進(jìn)行標(biāo)準(zhǔn)Base64編碼,通過(guò) openssl rand -base64 32 生成合規(guī)密鑰,確保配置項(xiàng)格式正確且無(wú)多余字符。

nacos.token.secret.key 必須滿足以下兩個(gè)條件:

1、Base64解碼后原始字節(jié)數(shù)恰好為32字節(jié);
2、使用標(biāo)準(zhǔn)Base64編碼(非URL安全變種),且不含換行、空格等非法字符。

常見(jiàn)錯(cuò)誤包括:
錯(cuò)誤類型 示例 后果
明文字符串未編碼 mysecretpassword 解碼失敗或長(zhǎng)度不符
Base64編碼長(zhǎng)度不足 YWJjZGVm(僅6字節(jié)) SecurityUtil校驗(yàn)失敗
含空格或換行符 base64+data\n 解碼異常
使用openssl生成但未截?cái)?/td> openssl rand -base64 33 解碼后33字節(jié),超長(zhǎng)

正確生成合規(guī)密鑰的方法
推薦使用OpenSSL工具生成符合要求的密鑰。執(zhí)行以下命令:

openssl rand -base64 32
輸出示例如下:
qR7T9kL2mX4vP6wE8zA1cN5bV7yH3uJ0sK9dF5gH2nM6oQ8r

將該字符串直接填入配置文件中:
nacos.token.secret.key=qR7T9kL2mX4vP6wE8zA1cN5bV7yH3uJ0sK9dF5gH2nM6oQ8r
注意:該字符串為標(biāo)準(zhǔn)Base64編碼,解碼后正好32字節(jié),完全符合HS256算法要求。

參考文檔:https://ask.csdn.net/questions/8923364

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容