欢迎光临
我们一直在努力

Nacos 3.0.3 Linux 单机部署完整文档(systemd 托管)

一、环境说明

  • 系统: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官网

    赞(0)
    未经允许不得转载:171主机测评 » Nacos 3.0.3 Linux 单机部署完整文档(systemd 托管)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址