Nacos配置
你好呀,我的老朋友!我是老寇,欢迎来到老寇IoT云平台!
# 📌 基础配置
| 配置项 | 示例值 | 说明 |
|---|---|---|
jasypt.encryptor.password | laokou | Jasypt 加密密钥,用于解密 ENC() 格式的敏感数据 |
spring.application.name | ${SERVICE_ID:laokou-nacos} | 应用名称,默认为 laokou-nacos |
spring.profiles.active | dev | 激活的环境配置文件 |
spring.threads.virtual.enabled | true | 开启 Java 虚拟线程支持 |
# 🌐 服务器配置
# Tomcat 配置
| 配置项 | 示例值 | 说明 |
|---|---|---|
server.compression.enabled | true | 开启 HTTP 响应压缩 |
server.tomcat.threads.max | 500 | 工作线程池的最大线程数 |
server.tomcat.threads.min-spare | 50 | 工作线程池的最小备用线程数 |
server.tomcat.max-connections | 10000 | Tomcat 最大连接数 |
server.tomcat.accept-count | 200 | 当所有工作线程都在忙时,允许等待处理的最大连接数 |
server.tomcat.uri-encoding | UTF-8 | URI 编码格式 |
server.tomcat.connection-timeout | 60s | 连接超时时间 |
# 其他服务器配置
| 配置项 | 示例值 | 说明 |
|---|---|---|
server.error.include-message | always | HTTP 响应中始终返回具体的错误消息 |
server.ssl.enabled | false | 关闭 SSL 证书 |
server.http2.enabled | false | 关闭 HTTP/2 |
server.shutdown | graceful | 优雅停机模式 |
# 📊 监控配置
| 配置项 | 示例值 | 说明 |
|---|---|---|
management.elastic.metrics.export.enabled | false | 不暴露指标到 Elasticsearch |
management.influx.metrics.export.enabled | false | 不暴露指标到 InfluxDB |
# 🔧 Nacos 核心配置
# 端口配置
| 配置项 | 示例值 | 说明 |
|---|---|---|
nacos.console.port | ${NACOS_CONSOLE_PORT:8048} | Nacos 服务控制台端口,默认 8048 |
nacos.server.main.port | ${NACOS_SERVER_PORT:8848} | Nacos 服务主端口,默认 8848 |
nacos.ai.mcp.registry.port | ${NACOS_MCP_REGISTRY_PORT:9080} | MCP 注册端口,默认 9080 |
# 上下文路径配置
| 配置项 | 示例值 | 说明 |
|---|---|---|
nacos.server.contextPath | /nacos | Nacos 服务上下文路径 |
nacos.console.contextPath | (空) | Nacos 服务控制台上下文路径 |
nacos.console.remote.server.context-path | /nacos | 控制台访问远程 Nacos 服务使用的上下文路径 |
# 部署模式
| 配置项 | 示例值 | 说明 |
|---|---|---|
nacos.deployment.type | ${NACOS_DEPLOYMENT_TYPE:merged} | 部署模式,默认 merged |
可选值说明:
server:服务模式console:控制台模式serverWithMcp:服务模式,启用 MCP 功能merged:合并模式(config + naming 模块合并部署,推荐方式)
# 🔐 认证配置
| 配置项 | 示例值 | 说明 |
|---|---|---|
nacos.core.auth.enabled | true | 开启认证 |
nacos.core.auth.admin.enabled | true | 开启 Nacos 管理员认证 |
nacos.core.auth.console.enabled | true | 控制台是否启用认证 |
nacos.core.auth.caching.enabled | true | 启用认证信息的缓存,减少重复认证的开销 |
nacos.core.auth.system.type | nacos | 指定系统类型为 Nacos |
# Token 配置
| 配置项 | 示例值 | 说明 |
|---|---|---|
nacos.core.auth.plugin.nacos.token.cache.enable | false | 禁用 Token 缓存,每次请求需重新验证 |
nacos.core.auth.plugin.nacos.token.expire.seconds | 18000 | Token 有效期(秒),超时后需重新获取 |
nacos.core.auth.plugin.nacos.token.secret.key | U2VjcmV0S2V5MDEy... | 生成和验证 Token 的密钥(Base64 编码) |
# 集群节点间通信认证
| 配置项 | 示例值 | 说明 |
|---|---|---|
nacos.core.auth.server.identity.key | serverIdentity | 服务节点间通信的认证标识(Key) |
nacos.core.auth.server.identity.value | security | 服务节点间通信的认证标识(Value) |
# 免认证 URL 配置
nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-ui/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**
配置无需认证即可访问的 URL 路径,通常用于静态资源或健康检查。
# 🗂️ 服务发现配置
# 空服务自动清理
| 配置项 | 示例值 | 说明 |
|---|---|---|
nacos.naming.empty-service.auto-clean | true | 自动清理无实例注册的空服务 |
nacos.naming.empty-service.clean.initial-delay-ms | 50000 | 服务清理任务的初始延迟时间(毫秒) |
nacos.naming.empty-service.clean.period-time-ms | 30000 | 服务清理任务的执行间隔(毫秒) |
# 模糊匹配订阅限制
| 配置项 | 示例值 | 说明 |
|---|---|---|
nacos.naming.fuzzy.watch.max.pattern.count | 20 | 单个客户端最多能订阅的模糊匹配模式数(服务发现) |
nacos.naming.fuzzy.watch.max.pattern.match.service.count | 500 | 每个模糊模式最多能匹配的服务数 |
nacos.config.fuzzy.watch.max.pattern.count | 20 | 单个客户端最多能订阅的模糊模式数(配置监听) |
nacos.config.fuzzy.watch.max.pattern.match.config.count | 500 | 每个模糊模式最多能匹配的配置项数 |
# 📝 配置中心相关
| 配置项 | 示例值 | 说明 |
|---|---|---|
nacos.config.push.maxRetryTime | 50 | 配置推送失败时的最大重试次数 |
# ⚙️ 其他 Nacos 配置
| 配置项 | 示例值 | 说明 |
|---|---|---|
nacos.istio.mcp.server.enabled | false | 禁用 Istio 的 MCP 服务(若不使用 Istio 可关闭) |
nacos.core.protocol.raft.strict_mode | true | 采用严格模式,Raft 无法选举时返回 500 |
nacos.k8s.sync.enabled | false | 是否启用 Kubernetes 同步 |
nacos.log.path | ${NACOS_LOG_PATH:./logs/nacos} | Nacos 日志文件路径 |
# 💾 数据库配置
# 基本配置
| 配置项 | 示例值 | 说明 |
|---|---|---|
spring.sql.init.platform | ${NACOS_DS_PLATFORM:postgresql} | 数据库类型,默认 PostgreSQL |
db.num | 1 | 数据库数量 |
⚠️ 注意:数据库数量请按照作者的来,请不要随意修改!
# 数据库连接配置
db.url.'0'=jdbc:${NACOS_DS_PLATFORM:postgresql}://${NACOS_DS_HOST:postgresql}:${NACOS_DS_PORT:5432}/${NACOS_DS_DB:kcloud_platform_nacos}?tcpKeepAlive=true&reWriteBatchedInserts=true&ApplicationName=laokou-nacos&useSSL=false&reWriteBatchedInserts=true&stringtype=unspecified
| 配置项 | 示例值 | 说明 |
|---|---|---|
db.user.'0' | ${NACOS_DS_USERNAME:ENC(...)} | 数据库用户名(加密) |
db.password.'0' | ${NACOS_DS_PASSWORD:ENC(...)} | 数据库密码(加密) |
# HikariCP 连接池配置
| 配置项 | 示例值 | 说明 |
|---|---|---|
db.pool.config.minimum-idle | 5 | 最小空闲连接数 |
db.pool.config.idle-timeout | 600000 | 空闲连接的最大存活时间(毫秒) |
db.pool.config.connection-timeout | 30000 | 获取连接超时时间(毫秒) |
db.pool.config.validation-timeout | 10000 | 验证超时时间(毫秒) |
db.pool.config.maximum-pool-size | 50 | 最大连接数 |
db.pool.config.driver-class-name | ${NACOS_DS_DRIVER:org.postgresql.Driver} | 数据库驱动类名 |
# 📋 日志配置
| 配置项 | 示例值 | 说明 |
|---|---|---|
logging.config | classpath:logback-spring.xml | 指定日志配置文件路径 |
# 🔄 自动装配排除
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
禁用 Spring Boot 的数据库自动装配,因为 Nacos 使用自己的数据源管理。
# 🌍 环境变量说明
| 变量名 | 默认值 | 说明 |
|---|---|---|
SERVICE_ID | laokou-nacos | 服务 ID |
PROFILE-ACTIVE | - | 激活的环境配置 |
NACOS_CONSOLE_PORT | 8048 | 控制台端口 |
NACOS_SERVER_PORT | 8848 | 服务端口 |
NACOS_MCP_REGISTRY_PORT | 9080 | MCP 注册端口 |
NACOS_DEPLOYMENT_TYPE | merged | 部署模式 |
NACOS_LOG_PATH | ./logs/nacos | 日志路径 |
NACOS_DS_PLATFORM | postgresql | 数据库平台 |
NACOS_DS_HOST | postgresql | 数据库主机 |
NACOS_DS_PORT | 5432 | 数据库端口 |
NACOS_DS_DB | kcloud_platform_nacos | 数据库名称 |
NACOS_DS_USERNAME | (加密值) | 数据库用户名 |
NACOS_DS_PASSWORD | (加密值) | 数据库密码 |
NACOS_DS_DRIVER | org.postgresql.Driver | 数据库驱动 |
# 📄 完整配置示例
# ==================== 基础配置 ====================
# 密钥
jasypt.encryptor.password=laokou
# 应用名称
spring.application.name=${SERVICE_ID:laokou-nacos}
# 环境
spring.profiles.active=dev
# 开启虚拟线程
spring.threads.virtual.enabled=true
# ==================== 服务器配置 ====================
# 开启请求压缩
server.compression.enabled=true
# 工作线程池的最大线程数
server.tomcat.threads.max=500
# 工作线程池的最小备用线程数
server.tomcat.threads.min-spare=50
# 最大连接数
server.tomcat.max-connections=10000
# 当所有工作线程都在忙时,允许等待处理的最大连接数
server.tomcat.accept-count=200
# uri编码
server.tomcat.uri-encoding=UTF-8
# 连接超时时间
server.tomcat.connection-timeout=60s
# 应用程序在发生错误时,http 响应中始终返回具体的错误消息
server.error.include-message=always
# 关闭证书
server.ssl.enabled=false
# 关闭http2
server.http2.enabled=false
# 优雅停机
server.shutdown=graceful
# ==================== 监控配置 ====================
# 不暴露指标到elastic
management.elastic.metrics.export.enabled=false
# 不暴露指标到influx
management.influx.metrics.export.enabled=false
# ==================== Nacos 核心配置 ====================
# nacos服务控制台端口
nacos.console.port=${NACOS_CONSOLE_PORT:8048}
# nacos服务主端口
nacos.server.main.port=${NACOS_SERVER_PORT:8848}
# mcp注册端口
nacos.ai.mcp.registry.port=${NACOS_MCP_REGISTRY_PORT:9080}
# nacos服务上下文路径
nacos.server.contextPath=/nacos
# nacos服务控制台上下文路径
nacos.console.contextPath=
# 控制台访问远程nacos服务,使用的上下文路径
nacos.console.remote.server.context-path=/nacos
# 部署模式
nacos.deployment.type=${NACOS_DEPLOYMENT_TYPE:merged}
# ==================== 认证配置 ====================
# 开启认证
nacos.core.auth.enabled=true
# 开启nacos管理员认证
nacos.core.auth.admin.enabled=true
# 控制台是否启用认证
nacos.core.auth.console.enabled=true
# 启用认证信息的缓存,减少重复认证的开销
nacos.core.auth.caching.enabled=true
# 指定系统类型为 nacos
nacos.core.auth.system.type=nacos
# 禁用 token 缓存,每次请求需重新验证 token
nacos.core.auth.plugin.nacos.token.cache.enable=false
# token 的有效期,超时后需重新获取
nacos.core.auth.plugin.nacos.token.expire.seconds=18000
# 生成和验证 token 的密钥【base64编码】
nacos.core.auth.plugin.nacos.token.secret.key=U2VjcmV0S2V5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5
# 服务节点间通信的认证标识,用于集群内部身份校验【key】
nacos.core.auth.server.identity.key=serverIdentity
# 服务节点间通信的认证标识,用于集群内部身份校验【value】
nacos.core.auth.server.identity.value=security
# 配置无需认证即可访问的 url 路径
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.config.push.maxRetryTime=50
# 自动清理无实例注册的空服务
nacos.naming.empty-service.auto-clean=true
# 服务清理任务的初始延迟时间
nacos.naming.empty-service.clean.initial-delay-ms=50000
# 服务清理任务的执行间隔,每 30 秒检查一次
nacos.naming.empty-service.clean.period-time-ms=30000
# 单个客户端最多能订阅20个模糊匹配模式(用于服务发现)
nacos.naming.fuzzy.watch.max.pattern.count=20
# 每个模糊模式最多能匹配500个服务
nacos.naming.fuzzy.watch.max.pattern.match.service.count=500
# 单个客户端最多能订阅20个模糊模式(用于配置监听)
nacos.config.fuzzy.watch.max.pattern.count=20
# 每个模糊模式最多能匹配500个配置项
nacos.config.fuzzy.watch.max.pattern.match.config.count=500
# ==================== 其他 Nacos 配置 ====================
# 禁用 istio 的 mcp 服务
nacos.istio.mcp.server.enabled=false
# 采用严格模式
nacos.core.protocol.raft.strict_mode=true
# 是否启用kubernetes同步
nacos.k8s.sync.enabled=false
# nacos日志文件路径
nacos.log.path=${NACOS_LOG_PATH:./logs/nacos}
# ==================== 数据库配置 ====================
# 禁用SpringBoot的数据库自动装配
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
# 指定数据库类型
spring.sql.init.platform=${NACOS_DS_PLATFORM:postgresql}
# 数据库数量
db.num=1
# 数据库连接地址
db.url.'0'=jdbc:${NACOS_DS_PLATFORM:postgresql}://${NACOS_DS_HOST:postgresql}:${NACOS_DS_PORT:5432}/${NACOS_DS_DB:kcloud_platform_nacos}?tcpKeepAlive=true&reWriteBatchedInserts=true&ApplicationName=laokou-nacos&useSSL=false&reWriteBatchedInserts=true&stringtype=unspecified
# 数据库用户名
db.user.'0'=${NACOS_DS_USERNAME:ENC(l126CTjtLG8OkXRNs5aofcN96EQpbQmQorTqpnWFMvcysQLjNBEuX+9f6hLwdoEk)}
# 数据库密码
db.password.'0'=${NACOS_DS_PASSWORD:ENC(BhsqlMbKjWVxPseo9OX8osLuL2Y4rWfGTyBRXaZTsAdzZ1Z4rBewBmoXjf2Hnu4o)}
# 最小空闲连接数
db.pool.config.minimum-idle=5
# 空闲连接的最大存活时间
db.pool.config.idle-timeout=600000
# 连接时间
db.pool.config.connection-timeout=30000
# 超时时间
db.pool.config.validation-timeout=10000
# 最大连接数
db.pool.config.maximum-pool-size=50
# 数据库驱动
db.pool.config.driver-class-name=${NACOS_DS_DRIVER:org.postgresql.Driver}
# ==================== 日志配置 ====================
# 指定日志配置文件路径
logging.config=classpath:logback-spring.xml
我是老寇,我们下次再见啦!
上次更新: 2/9/2026, 2:54:22 PM