一、环境说明
系统:CentOS / Alibaba Cloud Linux
Nacos 版本:3.0.3
安装路径:/home/nacos
运行用户:root
架构:单机 standalone 模式
端口规划
8848:服务客户端主端口(微服务注册 / 配置拉取)
8081:控制台 UI 访问端口(原 8080 修改)
两种持久化方案:内嵌 Derby(测试免 MySQL)、MySQL8.0(生产持久化)
二、前置准备
JDK17 环境(Nacos3.x 强制要求 JDK17)
云服务器安全组放行端口:8848、8081;本地防火墙同步放行
解压 nacos 安装包至 /home/nacos
保证 bin 目录脚本具备执行权限
chmod +x /home/nacos/bin/*.sh
三、application.properties 核心配置规范与完整模板
3.1 全局配置注意事项(必看)
鉴权模块 3.0.3 强制约束:
nacos.core.auth.enabled=true 开启鉴权后,identity.key/value 禁止为空;
JWT 密钥原始字符串长度≥32 位,必须标准 Base64 编码,无换行;
数据库配置二选一,不可同时生效:
测试:spring.sql.init.platform=derby(注释全部 mysql 配置)
生产:spring.sql.init.platform=mysql(补齐 db 连接参数)
3.2 一键生成合规 JWT 密钥脚本
# 生成32字符原始明文,无换行base64输出
RAW=$(openssl rand -hex 16)
BASE64_KEY=$(printf "%s" "$RAW" | base64 -w 0)
echo "Base64密钥(填入secret.key):$BASE64_KEY"
3.3 完整可用 application.properties 关键片段(仅修改标注内容)
#————— Nacos Web Server Configurations —————#
#*************** Nacos Console Related Configurations ***************#
### Nacos Console Main port 自定义控制台端口8081
nacos.console.port=8081
#*************** Auth Plugin Related Configurations ***************#
### 鉴权白名单静态资源
nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-ui/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**
nacos.core.auth.system.type=nacos
# 开启全局鉴权(必须true,否则启动提示缺失secret.key)
nacos.core.auth.enabled=true
nacos.core.auth.admin.enabled=true
nacos.core.auth.console.enabled=true
nacos.core.auth.caching.enabled=true
# 【重点】3.0.3禁止空值,单机随便自定义字符串
nacos.core.auth.server.identity.key=NacosServerKey2026
nacos.core.auth.server.identity.value=NacosServerVal2026
# Token缓存关闭
nacos.core.auth.plugin.nacos.token.cache.enable=false
# Token有效期100年,等效永久,禁止填0/负数
nacos.core.auth.plugin.nacos.token.expire.seconds=3153600000
# 替换上面脚本生成的Base64密钥,等号后无空格
nacos.core.auth.plugin.nacos.token.secret.key=此处替换生成的密钥
# 控制台登录账号密码
nacos.core.auth.default.username=nacos
nacos.core.auth.default.password=nacos
#*************** Datasource Related Configurations ***************#
## 方案A:测试环境内嵌Derby数据库(推荐新手,无需MySQL)
#spring.sql.init.platform=derby
# 注释下面全部mysql配置
#spring.sql.init.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=nacos
#db.password=nacos
## 方案B:生产MySQL8.0持久化(取消注释使用)
spring.sql.init.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=nacos
db.password=nacos
3.4 MySQL 模式额外注意点
提前创建数据库 nacos,执行 解压文件中的conf/mysql-schema.sql 初始化表;
MySQL8.0 报错 Public Key Retrieval is not allowed
解决方案:JDBC 链接追加 &allowPublicKeyRetrieval=true(模板已自带)
四、配置 systemd 系统服务(实现 systemctl start/stop nacos)
4.1 创建服务单元文件
vim /etc/systemd/system/nacos.service
写入完整内容:
[Unit]
Description=Nacos 3.0.3 Registry & Config Center
After=network.target
[Service]
Type=forking
# 单机启动模式
ExecStart=/bin/sh /home/nacos/bin/startup.sh -m standalone
ExecStop=/bin/sh /home/nacos/bin/shutdown.sh
WorkingDirectory=/home/nacos/bin
User=root
Group=root
StandardOutput=journal+console
StandardError=journal+console
Restart=no
[Install]
WantedBy=multi-user.target
4.2 加载配置生效
systemctl daemon-reload
五、启停与管理命令
# 启动nacos
systemctl start nacos
# 停止nacos
systemctl stop nacos
# 重启
systemctl restart nacos
# 查看运行状态
systemctl status nacos
# 设置开机自启
systemctl enable nacos
# 取消开机自启
systemctl disable nacos
# 实时查看systemd日志
journalctl -u nacos -f
# 查看nacos原生启动日志(排错核心)
tail -f /home/nacos/logs/start.out
# 清空日志重新观察
> /home/nacos/logs/start.out
systemctl restart nacos
六、控制台访问与客户端连接
控制台访问地址(自定义 8081 端口)
SpringBoot 微服务客户端配置(端口固定 8848,鉴权必须携带账号密码)
七、常见启动报错与解决方案
报错 1:nacos.core.auth.server.identity.key is missing, please set
原因:鉴权开关开启后,identity.key/value 为空 解决:补齐两个自定义字符串,不能留空
报错 2:Failed to instantiate RemoteRequestAuthFilter
原因:JWT 密钥不合法(长度不足、带空格、换行、编码错误) 解决:使用文档内 openssl 脚本重新生成无空格 Base64 密钥
报错 3:db.num is null
原因:开启 mysql 模式但数据库配置缺失,未指定 spring.sql.init.platform 解决:切换 derby 内嵌库,或完整补齐 mysql 全套 db 配置
报错 4:Public Key Retrieval is not allowed
原因:MySQL8 caching_sha2_password 加密校验失败 解决:jdbc 链接追加allowPublicKeyRetrieval=true,或修改 mysql 账号加密方式
报错 5:systemd 显示 active (running) 但几秒后 failed
排查步骤:
执行 tail -f /home/nacos/logs/start.out 查看底层真实异常;
检查配置文件是否存在 windows 换行符 sed -i 's/\\r//g';
核对鉴权三要素:identity 配置、JWT 密钥、登录账号;
核对数据库配置二选一,不可冲突。
八、访问
浏览器访问 localhost:8081/ ,注意此版本的nacos不用加/nacos路径,直接访问即可。

九、说明
1.nacos安装包
官网下载地址:Releases · alibaba/nacos · GitHub
本地包与数据库初始化脚本:已经关联文章,顶部可下载
2.官方启动教程
官方的文档应该很久没更新过了把…不仅版本没3.X版本,而且按照官方的教程启动会报一堆错,所以建议按照三中的配置项提前配置好。
Nacos 快速开始 | Nacos 官网
快速开始-阿里云Spring Cloud Alibaba官网





