LinuxWindows环境下Nacos3.1.0详细安装配置指南:从零到生产就绪
📖 前言:为什么这篇指南值得你收藏?
作为一名资深后端开发者,我最近在CentOS 7服务器上部署Nacos时,发现网络上虽然有很多安装教程,但大多存在版本过时、步骤残缺或关键细节缺失的问题。特别是在Nacos 3.0+版本引入强制鉴权机制后,许多旧教程已不再适用。
💡 知识预热:关于Nacos 3.0+的安全升级
在开始具体安装步骤前,有必要先了解一个重要变化:Nacos从3.0.0版本开始默认启用控制台鉴权功能。这意味着如果你直接按照旧教程安装,一定会遇到三个关键的鉴权配置问题:
# 安装过程中必然会遇到的三个"拦路虎":
nacos.core.auth.plugin.nacos.token.secret.key is missing
nacos.core.auth.server.identity.key is missing
nacos.core.auth.server.identity.value is missing
不用担心,本文详细讲解这三个配置的深层含义和正确设置方法。
接下来,让我们开始真正的安装之旅吧!
系统要求
注意: 以下是部署Nacos Server的最小系统要求。如果您的环境无法满足系统最小要求,可能会导致无法部署和启动Nacos Server。
JDK/JRE | 17及以上 |
CPU | 1核及以上,支持64位CPU |
内存 | 2G及以上 |
硬盘 | 无最小要求,根据保留日志自行调整 |
操作系统 | Linux, Mac OS X, Windows |
Nacos Server 只维护最新的GA 发布版本,截止作者安装时最新版本是 3.1.0。最新版本向下兼容 1.0.0 版本。
1. 预备环境准备
Nacos 依赖 Java 环境来运行,请确保是在以下版本环境中安装使用:
- 64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
- 64 bit JDK 17+;下载 & 配置。
2. 下载安装包
你可以通过Nacos官网网站及Github两种方式来获取 Nacos 发行包 。
官网:
进入Nacos官网版本下载页面,选择 稳定版本, 然后点击二进制包下载
列中的${nacos.version}.zip
进行下载。
注意:有时大量用户同时进行下载时,可能会遇到下载限流失败的情况,若出现下载限流失败,请稍等后重试,或采用
从 Github 下载方式
。
Github:
进入Nacos Github 的 最新稳定版本 ,选择需要下载的Nacos版本,在Assets
中点击下载 nacos-server-$version.zip
包。
3. 解压缩Nacos 发行包
unzip nacos-server-$version.zip# 或者 tar -xvf nacos-server-$version.tar.gz
4.⚙️ 配置与启动Nacos
单机模式启动(推荐初学者)
对于测试和学习,使用内嵌数据库的单机模式最简单
进入启动脚本目录,以单机模式启动:
cd /usr/local/nacos/bin
# Linux/Unix/Mac
#启动命令(standalone代表着单机模式运行,非集群模式):
sh startup.sh -m standalone
#如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:
bash startup.sh -m standalone###Windows启动如下:
startup.cmd -m standalone
随后启动程序会提示您输入3个
鉴权相关配置(Nacos从3.0.0版本开始默认启用控制台鉴权功能,因此如下3个鉴权相关配置必须填写)如下所示:
`nacos.core.auth.plugin.nacos.token.secret.key` is missing, please set with Base64 string: ${your_input_token_secret_key}
nacos.core.auth.plugin.nacos.token.secret.key` Updated:
----------------------------------
`nacos.core.auth.server.identity.key` is missing, please set: ${your_input_server_identity_key}
`nacos.core.auth.server.identity.key` Updated:
----------------------------------
`nacos.core.auth.server.identity.value` is missing, please set: ${your_input_server_identity_key}
`nacos.core.auth.server.identity.value` Updated:
----------------------------------
🔐 三个鉴权配置详解
1. nacos.core.auth.plugin.nacos.token.secret.key
含义:用于生成JWT token的密钥种子
-
这是最核心的安全密钥,用于加密用户token
-
必须是Base64编码的字符串(至少32字符)
-
生产环境必须设置强密码,且定期更换
设置方法:
# 生成一个安全的Base64密钥(推荐)
openssl rand -base64 32
# 输出示例:aBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789abcdefghij==# 或者使用在线Base64生成工具
2. nacos.core.auth.server.identity.key
含义:服务器身份标识的键名
-
用于标识Nacos服务器自身的身份
-
通常使用默认值即可,用于内部服务识别
推荐设置:
server.identity
# 或者保持默认(如果系统提示默认值)
3. nacos.core.auth.server.identity.value
含义:服务器身份标识的值
-
与上面的key对应,是服务器的具体身份值
-
需要保持唯一性和安全性
推荐设置:
# 生成一个唯一标识(推荐)
openssl rand -hex 16
# 输出示例:a1b2c3d4e5f67890123456789abcdef0# 或者使用服务器IP+时间戳
your_server_ip_timestamp
📝 完整的设置流程
方法一:启动时交互式设置(您遇到的情况)
当首次启动时,系统会提示输入这三个值:
# 启动Nacos
sh startup.sh -m standalone# 系统会依次提示:
# 1. 输入token secret key(Base64格式)
# 2. 输入server identity key
# 3. 输入server identity value
方法二:预先配置文件(推荐)
更安全的方式是预先在配置文件中设置:
# 编辑Nacos配置文件
vi /root/wp/nacos/nacos/conf/application.properties
在文件末尾添加:
# JWT Token密钥(使用生成的Base64字符串)
nacos.core.auth.plugin.nacos.token.secret.key=你生成的Base64密钥# 服务器身份标识
nacos.core.auth.server.identity.key=server.identity
nacos.core.auth.server.identity.value=你生成的唯一标识值# 其他相关安全配置(可选但推荐)
nacos.core.auth.enable.userAgentAuthWhite=false
nacos.core.auth.system.type=nacos
5、配置MySQL数据库持久化
如果你希望将配置信息等数据持久化到MySQL,避免重启Nacos后数据丢失,需要进行以下配置:
-
初始化数据库:创建名为
nacos
的数据库,并执行Nacos配置目录下的SQL脚本(/usr/local/nacos/conf/mysql-schema.sql
或nacos-mysql.sql
)来初始化表结构。 -
修改配置文件:编辑Nacos的配置文件
/usr/local/nacos/conf/application.properties
,找到数据库连接部分并修改:
# 启用MySQL数据库
spring.datasource.platform=mysql
# 数据库实例数量
db.num=1
# 配置第一个数据库的连接信息,请替换为你的实际信息
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&allowPublicKeyRetrieval=true
db.user.0=你的mysql用户名
db.password.0=你的mysql密码
修改配置后的正确操作步骤
# 1. 首先停止当前运行的Nacos服务(如果正在运行)
sh /usr/local/nacos/bin/shutdown.sh# 2. 等待几秒钟确保服务完全停止# 3. 重新启动Nacos(无需再加 -m standalone 参数)
sh /usr/local/nacos/bin/startup.sh
⚠️ 特别注意:从嵌入式数据库切换到MySQL后:
-
之前在内置数据库中创建的配置数据不会自动迁移到MySQL
-
如果需要保留原有数据,需要手动导出导入
-
首次切换到MySQL后,Nacos会使用空的数据库启动
重启是必须的,因为Nacos只在启动时加载application.properties
配置文件中的数据库连接信息。
6.配置systemctl开机自启动
📋 创建Systemctl服务文件
1. 创建服务文件
sudo vi /etc/systemd/system/nacos.service
2. 编辑服务配置内容
[Unit]
Description=Nacos Service
Documentation=https://nacos.io/
After=network.target network-online.target
Wants=network-online.target[Service]
Type=forking
# 根据您的实际路径修改
Environment="JAVA_HOME=/usr/local/jdk-17.0.2"
Environment="JAVA_OPT=-Xms512m -Xmx512m -Xmn256m"# Nacos安装目录
WorkingDirectory=/root/wp/nacos/nacos/bin# 启动命令 - 重要:明确指定单机模式
ExecStart=/bin/sh startup.sh -m standalone
ExecStop=/bin/sh shutdown.sh
Restart=on-failure
RestartSec=30# 用户和组,根据您的实际情况设置
User=root
Group=root[Install]
WantedBy=multi-user.target
⚙️ 配置说明和注意事项
关键配置项解释:
-
Type=forking: Nacos启动脚本会fork子进程
-
Environment: 设置Java环境变量
-
WorkingDirectory: 设置为bin目录,因为启动脚本需要在该目录执行
-
ExecStart: 明确指定单机模式
-m standalone
-
User/Group: 根据您的安全需求设置
3. 重新加载systemd配置
sudo systemctl daemon-reload
🚀 管理Nacos服务
#启动Nacos服务
sudo systemctl start nacos#停止Nacos服务
sudo systemctl stop nacos#查看服务状态
sudo systemctl status nacos#设置开机自启动
sudo systemctl enable nacos#禁用开机自启动
sudo systemctl disable nacos#重启服务
sudo systemctl restart nacos#查看服务日志
sudo journalctl -u nacos -f
🔧 高级配置选项
更详细的环境配置:
[Unit]
Description=Nacos Service
Documentation=https://nacos.io/
After=network.target mysqld.service
Wants=network-online.target[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/jdk-17.0.2"
Environment="JAVA_OPT=-Xms512m -Xmx512m -Xmn256m -Dnacos.standalone=true"
Environment="NACOS_HOME=/root/wp/nacos/nacos"WorkingDirectory=/root/wp/nacos/nacos/bin
ExecStartPre=/bin/sleep 5
ExecStart=/bin/sh startup.sh -m standalone
ExecStop=/bin/sh shutdown.sh
Restart=always
RestartSec=10
StartLimitInterval=60s
StartLimitBurst=3User=root
Group=root# 日志配置
StandardOutput=journal
StandardError=journal[Install]
WantedBy=multi-user.target
7、🌐 验证访问与后续步骤
-
访问控制台:打开本地浏览器,输入
http://<你的CentOS服务器IP地址>:8080
。如果看到登录页面,说明安装成功。 -
登录:使用默认用户名
nacos
和密码nacos
登录。 -
安全提醒:首次登录后,强烈建议立即在管理控制台修改默认密码,并考虑配置鉴权规则,以保障系统安全。