Linux&Windows环境下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 环境来运行,请确保是在以下版本环境中安装使用:

  1. 64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
  2. 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后数据丢失,需要进行以下配置:

  1. 初始化数据库 :创建名为nacos的数据库,并执行Nacos配置目录下的SQL脚本(/usr/local/nacos/conf/mysql-schema.sqlnacos-mysql.sql)来初始化表结构。

  2. 修改配置文件 :编辑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=3

User=root
Group=root

# 日志配置
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

7、🌐 验证访问与后续步骤

  1. 访问控制台 :打开本地浏览器,输入 http://<你的CentOS服务器IP地址>:8080。如果看到登录页面,说明安装成功。

  2. 登录 :使用默认用户名 nacos 和密码 nacos 登录。

  3. 安全提醒 :首次登录后,强烈建议立即在管理控制台修改默认密码,并考虑配置鉴权规则,以保障系统安全。

相关推荐
王道长服务器 | 亚马逊云2 小时前
AWS Route 53 详解:不只是 DNS,还能做智能流量调度
服务器·网络·微服务·云原生·架构·云计算·aws
Lxinccode3 小时前
python(42) : 监听本地文件夹上传到服务器指定目录
服务器·开发语言·python·文件上传服务器·监听文件上传服务器
峰顶听歌的鲸鱼3 小时前
30.Linux DHCP 服务器
linux·运维·服务器·笔记·学习方法
退役小学生呀3 小时前
二十一、DevOps:从零建设基于K8s的DevOps平台(二)
运维·docker·云原生·容器·kubernetes·devops
微风中的麦穗3 小时前
【MD编辑器Typora】Typora最新 V1.12.1版:轻量级 Markdown 编辑器详细图文下载安装使用指南 【办公学习神器之MD文本编辑器】
运维·typora·开发工具·md编辑器·markdown 编辑器·markdown文件·办公学习工具
Lzc7743 小时前
Linux的网络基础
linux·linux的网络基础
violet-lz4 小时前
Linux文件系统调用:文件调用函数与exec系统函数详解与应用
linux·运维·服务器
aesthetician4 小时前
@tanstack/react-query:React 服务器状态管理与数据同步解决方案
服务器·前端·react.js
学习同学4 小时前
从0到1制作一个go语言服务器 (一) 配置
服务器·开发语言·golang