Skip to content
OpenClaw 不踩坑恶意 Skills ,企业需 Skills Registry:Nacos 3.2 发布Know more

System Parameters

This page summarizes common Nacos 3.3.x server-side parameters. The main source is ${nacos.home}/conf/application.properties in the Nacos distribution, with extra notes from current configuration code.

For production deployments, read Deployment Best Practices first, then use this page to confirm specific properties.

Where to Configure

The main Nacos Server configuration file is ${nacos.home}/conf/application.properties. The startup script also adds:

Terminal window
--spring.config.additional-location=file:${BASE_DIR}/conf/

The same property can come from the configuration file, JVM -D options, or the startup script. In general, JVM options have higher priority than the configuration file. Properties marked with (-D) are usually set through the startup script or JVM options.

Basic Startup

PropertyDescriptionDefault
nacos.home(-D)Nacos home directory.installation directory
nacos.standalone(-D)Whether to start in standalone mode. startup.sh -m standalone sets this property.false
nacos.functionMode(-D)Function mode. all starts all available modules; config and naming start only Config and Naming, respectively; microservice starts Config and Naming without the AI module; ai starts AI together with its Config and Naming dependencies.all
nacos.deployment.type(-D)Deployment type. The startup script uses merged by default.merged
nacos.server.main.portMain Nacos Server port.8848
nacos.server.contextPathHTTP context path of Nacos Server./nacos
spring.config.additional-locationExtra configuration file locations. Separate multiple locations with commas.${nacos.home}/conf/
server.error.include-messageWhether Spring Boot error responses include the message field.ALWAYS
server.max-http-request-header-sizeHTTP request header size limit set by the startup script.524288

Network and Node Address

PropertyDescriptionDefault
nacos.server.ip(-D)Explicit local server IP. It has higher priority than auto detection and nacos.inetutils.ip-address.empty
nacos.inetutils.ip-addressExplicit local IP, commonly used in multi-NIC or container environments.empty
nacos.inetutils.prefer-hostname-over-ipPrefer hostname as node address. If enabled, cluster.conf should also use resolvable hostnames.false
nacos.remote.grpc.listen.ip(-D)Listen IP for gRPC ports. If unset, gRPC usually listens on all interfaces.empty

Database

Nacos supports Derby, MySQL, PostgreSQL, Oracle, and custom database types through datasource dialect plugins. For setup, community plugins, and Oracle version requirements, see Datasource Plugin.

PropertyDescriptionDefault
nacos.plugin.datasource-dialect.typeSelect derby, mysql, postgresql, oracle, or a custom dialect at startup.derby for standalone/embedded; mysql for ordinary cluster
nacos.plugin.datasource.db.numNumber of external database URLs.0
nacos.plugin.datasource.db.url.{index}JDBC URL for each index.empty
nacos.plugin.datasource.db.user[.{index}]Shared or per-connection username.empty
nacos.plugin.datasource.db.password[.{index}]Shared or per-connection password.empty
nacos.plugin.datasource.db.pool.config.*HikariCP settings; stable keys use kebab-case, such as maximum-pool-size.See the datasource plugin page
nacos.plugin.datasource.db.query-timeoutJDBC query timeout in seconds.3
nacos.plugin.datasource.log.enabledWhether to print datasource plugin logs.true

Web and Console

Nacos 3.x separates the Server and Console ports by default. Server APIs use 8848 by default, and the new Console uses 8080. See Console Manual for usage.

PropertyDescriptionDefault
nacos.console.portConsole port.8080
nacos.console.contextPathConsole context path.empty
nacos.console.remote.server.context-pathServer context path used by an independent Console deployment./nacos
nacos.console.ui.enabledWhether to enable Console UI.true
nacos.console.ui.defaultDefault Console UI. Valid values are next and legacy.next
spring.servlet.multipart.max-file-sizeSingle upload file size limit for Console, such as Skill zip files.10MB
spring.servlet.multipart.max-request-sizeTotal upload request size limit for Console.10MB
server.servlet.encoding.charsetServlet encoding.UTF-8

Console CORS

PropertyDescriptionDefault
nacos.console.cors.allow-credentialsWhether credentials such as cookies, Authorization headers, and TLS client certificates are allowed.true
nacos.console.cors.allowed-headersAllowed headers. Empty means all headers are allowed.empty
nacos.console.cors.max-ageCORS preflight cache time in seconds.18000
nacos.console.cors.allowed-methodsAllowed HTTP methods. Empty means all methods are allowed.empty
nacos.console.cors.allowed-originsAllowed origins. Empty means all origin patterns are allowed.empty

Access Log and Metrics

For metrics exposure and alerting suggestions, see Monitoring Manual.

PropertyDescriptionDefault
server.tomcat.accesslog.enabledWhether to enable access logs.true
server.tomcat.accesslog.max-daysAccess log retention days.30
server.tomcat.accesslog.patternAccess log pattern.distribution default
server.tomcat.basedirTomcat working directory and access log base directory.file:.
management.endpoints.web.exposure.includeExposed Actuator endpoints. Add prometheus to expose Prometheus metrics.empty
management.metrics.export.elastic.enabledWhether to enable the Elastic metrics exporter.false
management.metrics.export.influx.enabledWhether to enable the Influx metrics exporter.false
nacos.core.monitor.topn.enabledWhether to enable TopN metrics.true
nacos.core.monitor.topn.countTopN item count.10
nacos.core.monitor.topn.internalMsTopN collection interval in milliseconds.60000

Cluster Member Discovery

PropertyDescriptionDefault
nacos.member.list(-D)Cluster member list. The startup script -c option sets this JVM property. It can be used when cluster.conf does not exist.empty
nacos.member-change-event.queue.sizeQueue size for cluster member change events.128
nacos.core.member.lookup.typeMember lookup type. Valid values are file and address-server.file
nacos.core.address-server.retryRetry count when initializing from the address server.5
address.server.domainAddress server domain.jmenv.tbsite.net
address.server.portAddress server port.8080
address.server.urlAddress server request path./nacos/serverlist
nacos.core.member.meta.siteNode site metadata.empty
nacos.core.member.meta.adweightNode weight metadata.empty
nacos.core.member.meta.weightNode weight metadata.empty

gRPC

PropertyDescriptionDefault
nacos.remote.server.grpc.sdk.max-inbound-message-sizeMaximum inbound SDK gRPC request size in bytes.10485760
nacos.remote.server.grpc.sdk.keep-alive-timeSDK gRPC keepalive interval in milliseconds.7200000
nacos.remote.server.grpc.sdk.keep-alive-timeoutSDK gRPC keepalive timeout in milliseconds.20000
nacos.remote.server.grpc.sdk.permit-keep-alive-timeMinimum keepalive interval clients are permitted to configure, in milliseconds.300000
nacos.remote.server.grpc.cluster.max-inbound-message-sizeMaximum inbound cluster gRPC request size in bytes.10485760
nacos.remote.server.grpc.cluster.keep-alive-timeCluster gRPC keepalive interval in milliseconds.7200000
nacos.remote.server.grpc.cluster.keep-alive-timeoutCluster gRPC keepalive timeout in milliseconds.20000
nacos.remote.server.grpc.cluster.permit-keep-alive-timeMinimum keepalive interval for cluster gRPC, in milliseconds.300000
remote.executor.times.of.processors(-D)Multiplier of CPU cores for the server request executor size.16
remote.executor.queue.size(-D)Queue size of the server request executor.16384

Distro and Raft

Distro and Raft are internal consistency protocol parameters. Do not tune them in production unless you have diagnosed a protocol bottleneck or have maintainer guidance.

Distro

PropertyDescriptionDefault
nacos.core.protocol.distro.data.sync.delayMsData sync delay in milliseconds. Updates for the same data key are merged within the delay window.1000
nacos.core.protocol.distro.data.sync.timeoutMsTimeout for one data sync in milliseconds.3000
nacos.core.protocol.distro.data.sync.retryDelayMsRetry delay after sync failure in milliseconds.3000
nacos.core.protocol.distro.data.verify.intervalMsVerification interval for synced data in milliseconds.5000
nacos.core.protocol.distro.data.verify.timeoutMsTimeout for one data verification in milliseconds.3000
nacos.core.protocol.distro.data.load.retryDelayMsRetry delay after snapshot load failure during startup in milliseconds.30000

Raft

Raft properties use nacos.core.protocol.raft.data.*. The data segment is the current RaftConfig map field and should not be omitted.

PropertyDescriptionDefault
nacos.core.protocol.raft.data.election_timeout_msElection timeout in milliseconds.5000
nacos.core.protocol.raft.data.snapshot_interval_secsSnapshot interval in seconds.1800
nacos.core.protocol.raft.data.core_thread_numInternal Raft worker thread count.8
nacos.core.protocol.raft.data.cli_service_thread_numRaft business request thread count.4
nacos.core.protocol.raft.data.read_index_typeLinear read strategy.ReadOnlySafe
nacos.core.protocol.raft.data.rpc_request_timeout_msRaft RPC request timeout in milliseconds.5000
nacos.core.protocol.raft.data.max_byte_count_per_rpcMaximum bytes for one snapshot copy RPC.131072
nacos.core.protocol.raft.data.max_entries_sizeMaximum log entries sent from leader to follower in one batch.1024
nacos.core.protocol.raft.data.max_body_sizeMaximum body size for sending logs.524288
nacos.core.protocol.raft.data.max_append_buffer_sizeAppend buffer size for logs.262144
nacos.core.protocol.raft.data.max_election_delay_msMaximum random election delay in milliseconds.1000
nacos.core.protocol.raft.strict-modeStrict startup validation. If enabled, readiness fails when Raft cannot elect a leader.false

Config

For daily usage, see Config Center Manual.

PropertyDescriptionDefault
nacos.config.push.maxRetryTimeMaximum retry count for config change push.50
nacos.config.retention.daysConfig history retention days.30
nacos.config.search.max_capacityQueue capacity for content search tasks.4
nacos.config.search.max_threadThread count limit for content search.2
nacos.config.search.wait_timeoutContent search wait timeout in milliseconds.8000
nacos.config.derby.ops.enabledWhether Derby ops APIs are enabled when Derby is used.false
nacos.persistence.sql.derby.limit.enabledWhether SQL execution is limited when Derby is used.true
nacos.config.cache.typeConfig cache implementation type.nacos
nacos.config.history.clear.nameConfig history cleaner implementation name.nacos

Naming

For daily usage, see Naming Manual.

PropertyDescriptionDefault
nacos.naming.data.warmupWhether to wait for naming data warmup during startup. Readiness may fail until warmup is complete.false
nacos.naming.expireInstanceWhether expired ephemeral instances are removed automatically.true
nacos.naming.empty-service.auto-cleanWhether empty services are cleaned automatically.true
nacos.naming.empty-service.clean.initial-delay-msInitial delay for empty service cleanup in milliseconds.50000
nacos.naming.empty-service.clean.period-time-msEmpty service cleanup period in milliseconds.30000
nacos.naming.clean.empty-service.intervalEmpty service cleanup interval in milliseconds.60000
nacos.naming.clean.empty-service.expired-timeEmpty service expiration time in milliseconds.60000
nacos.naming.clean.expired-metadata.intervalExpired metadata cleanup interval in milliseconds.5000
nacos.naming.clean.expired-metadata.expired-timeExpired metadata retention time in milliseconds.60000
nacos.naming.client.expired.timeEphemeral client data expiration time in milliseconds.180000
nacos.naming.push.pushTaskDelayNaming push delay in milliseconds.500
nacos.naming.push.pushTaskTimeoutNaming push execution timeout in milliseconds.5000
nacos.naming.push.pushTaskRetryDelayRetry delay after naming push failure in milliseconds.1000
nacos.naming.service.metadata.lengthTotal service metadata length limit.1024

Parameter Validation

PropertyDescriptionDefault
nacos.core.param.check.enabledWhether server-side parameter validation is enabled. See Parameter Validation.true
nacos.core.param.check.checkerParameter checker name. The built-in checker is used by default.default

Auth and Visibility

For auth setup, read Authorization and OIDC/OAuth2 Authentication. For visibility, see Visibility Plugin.

PropertyDescriptionDefault
nacos.plugin.auth.typeSelect the auth implementation at startup; nacos.core.auth.system.type is a legacy alias.nacos
nacos.core.auth.enabledWhether the general auth system and Open API authentication are enabled, including Client/Open HTTP APIs and SDK/gRPC requests.false
nacos.core.auth.admin.enabledWhether Admin API scope authentication is enabled, including plugin-owned endpoints marked ADMIN_API as well as /v3/admin/*.true
nacos.core.auth.console.enabledWhether /v3/console/* Console API and login authentication are enabled.true
nacos.plugin.auth.nacos.caching.enabledWhether auth information is cached; nacos.core.auth.caching.enabled is a historical alias. Permission updates may have a short delay when enabled.true
nacos.core.auth.server.identity.keyServer-to-server identity key. Required when auth is enabled.empty
nacos.core.auth.server.identity.valueServer-to-server identity value. Required when auth is enabled.empty
nacos.security.ignore.urlsAuth ignored URLs. This is a legacy compatibility property and may be deprecated in the future.distribution default
nacos.plugin.auth.nacos.token.cache.enableDefault auth token cache; nacos.core.auth.plugin.nacos.token.cache.enable is a historical alias.false
nacos.plugin.auth.nacos.token.expire.secondsDefault auth token expiration in seconds; nacos.core.auth.plugin.nacos.token.expire.seconds is a historical alias.18000
nacos.plugin.auth.nacos.token.secret.keyJWT signing secret; sensitive and RESTART. nacos.core.auth.plugin.nacos.token.secret.key is a historical alias.empty
nacos.plugin.auth.nacos.anonymous.ai.enabledWhether explicitly opted-in AI endpoints accept anonymous reads; nacos.core.auth.nacos.anonymous.ai.enabled is a historical alias. Explicit empty or invalid credentials never fall back to anonymous access.false
nacos.plugin.visibility.enabledWhether the visibility plugin is enabled.true
nacos.plugin.visibility.typeDeprecated RESTART selector that still chooses the implementation requested by the AI domain and contributes to initial state when no persisted state exists.nacos
nacos.plugin.visibility.{pluginName}.enabledStatic initial implementation state; persisted plugin state wins. The default nacos implementation reuses default auth plugin user information.true for nacos

LDAP, OIDC, and OAuth2

LDAP and OIDC/OAuth2 are optional plugins. The table lists canonical prefixes; see Auth Plugin for exact definitions, aliases, defaults, and effect modes.

PropertyDescriptionDefault
nacos.plugin.auth.ldap.{itemKey}LDAP definitions: url, base-dn, timeout, user-dn, password, filter-prefix, case-sensitive, and ignore-partial-result-exception.See the Auth Plugin page
nacos.plugin.auth.oidc.{itemKey}OIDC definitions for issuer/client, JWT/JWKS, claims, external authorization, and strict validation. Only JWT/JWKS is currently implemented; introspection is not supported.See the Auth Plugin page

Plugin Parameters

For the plugin system, see Plugin Overview.

PropertyDescriptionDefault
nacos.custom.environment.enabledWhether the custom environment plugin is enabled.false
nacos.plugin.control.typeSelect the control implementation at startup; nacos.plugin.control.manager.type is a legacy alias.empty (no-limit)
nacos.plugin.control.rule.local.basedirLocal directory for traffic control rules.${nacos.home}
nacos.plugin.control.rule.external.storageExternal rule storage type. Requires a custom implementation.empty
nacos.plugin.{pluginType}.{pluginName}.enabledInitial state for non-exclusive implementations; persisted or local state can override it. Exclusive types such as auth, datasource-dialect, and control use selectors instead.Defined by implementation and type policy
nacos.plugin.{pluginType}.{pluginName}.{itemKey}Canonical key for an implementation definition.Defined by the definition

Historical nacos.core.config.plugin.{pluginName}.* properties exist only for old config-change binaries. Nacos Server does not bundle webhook, whitelist, or fileformatcheck implementations. New implementations use nacos.plugin.config-change.{pluginName}.{itemKey}.

Istio and Prometheus Service Discovery

These are long-standing ecology integration capabilities. See Ecology Overview.

PropertyDescriptionDefault
nacos.extension.naming.istio.enabledWhether to load the Istio module.false
nacos.istio.mcp.server.enabledWhether to enable the Istio MCP server.false
nacos.istio.mcp.server.portIstio MCP server port.18848
nacos.istio.server.fullWhether to use full push.true
nacos.istio.debounce.maxMaximum debounce wait time for Istio push in milliseconds.5000
nacos.istio.debounce.afterDebounce wait time for Istio push in milliseconds.100
nacos.istio.domain.suffixIstio domain suffix.nacos
nacos.prometheus.metrics.enabledWhether to enable the Prometheus service discovery helper API.false

AI Registry

For usage, see AI Registry Overview. The properties below control module switches, protocol adapters, importers, and publish pipelines.

PropertyDescriptionDefault
nacos.extension.ai.enabledWhether the AI module is enabled. When set to false, the AI module and its console entries are not loaded, while Config and Naming remain available. The microservice function mode does not load the AI module regardless of this value.true
nacos.ai.mcp.registry.enabledWhether the official MCP Registry protocol adapter is enabled. When enabled, it exposes an independent port through nacos.ai.registry.port.false
nacos.ai.skill.registry.enabledWhether the Skill Registry protocol adapter is enabled. When enabled, it exposes an independent port through nacos.ai.registry.port.false
nacos.ai.registry.portAI Registry protocol adapter port.9080
nacos.ai.mcp.registry.portLegacy property name. Deprecated. Use nacos.ai.registry.port instead.9080
nacos.plugin.ai-pipeline.enabledDynamic AI Pipeline family gate; when false, type loading is deferred.true
nacos.plugin.ai-pipeline.typeLegacy startup chain used only to initialize node state when no persisted state exists.empty
nacos.plugin.ai-pipeline.skill-scanner.{itemKey}skill-scanner definitions; only order is RUNTIME.See the AI Pipeline Plugin page
nacos.plugin.ai-pipeline.skill-spector.{itemKey}skill-spector definitions; only order is RUNTIME.See the AI Pipeline Plugin page
nacos.ai.skill.auto-publish-after-review.enabledWhether Skill versions are automatically published after approval.false
nacos.plugin.ai-resource-import.enabledAI Resource Import family gate. It is enabled when neither the standard key nor its alias is configured; only an explicit false disables it. The distribution also sets the standard key to true.true
nacos.plugin.ai-resource-import.{pluginName}.enabledStartup state for each fixed source.mcp-official/skills-sh enabled; others disabled
nacos.plugin.ai-resource-import.{pluginName}.{itemKey}Source definitions. Endpoint/network items are RESTART; display and limit items are RUNTIME.See the AI Resource Import Plugin page
nacos.ai.resource.import.legacy-mcp-api-enabledWhether deprecated MCP import APIs are temporarily reopened.false
nacos.ai.resource.import.allow-user-urlWhether deprecated MCP import APIs can fetch user-provided URLs after being reopened.false

Old nacos.plugin.ai.importer.*, nacos.ai.resource.import.sources[N].*, presets, and cloned-endpoint models are removed or retained only as explicitly documented migration aliases. Do not use them for new deployments. See AI Resource Import Plugin.

Experimental Features

Experimental features do not promise long-term stable behavior. Read Experimental Features Overview before using them.

PropertyDescriptionDefault
nacos.k8s.sync.enabledWhether the built-in K8s sync experimental capability is enabled.false
nacos.k8s.sync.outsideClusterWhether the Kubernetes API Server is accessed from outside the cluster.false
nacos.k8s.sync.kubeConfigKubeconfig path used for access outside the cluster./.kube/config

Compatibility and Migration

These properties are used for upgrades, migration, or legacy compatibility. They are not the recommended model for new systems. See Compatibility and Deprecation for more context.

PropertyDescriptionDefault
nacos.core.api.compatibility.client.enabledWhether client API compatibility is enabled.true
nacos.core.api.compatibility.admin.enabledWhether Admin API compatibility is enabled.false
nacos.core.api.compatibility.console.enabledWhether Console API compatibility is enabled.false

Startup Script and Image Variables

The distribution startup.sh supports these common options:

OptionDescriptionRelated property
-m standaloneStart in standalone mode.nacos.standalone=true
-m clusterStart in cluster mode.nacos.standalone=false
-f configStart config-related modules only.nacos.functionMode=config
-f namingStart naming-related modules only.nacos.functionMode=naming
-f microserviceStart only the Config and Naming modules without the AI module (Nacos 3.2.2+).nacos.functionMode=microservice
-f aiStart AI-related modules.nacos.functionMode=ai
-cSet the cluster member list.nacos.member.list
-p embeddedUse embedded storage in cluster mode.embeddedStorage=true
-dSet the deployment type.nacos.deployment.type

When using the official container image, common environment variables include MODE, NACOS_SERVERS, PREFER_HOST_MODE, NACOS_AUTH_ENABLE, NACOS_AUTH_ADMIN_ENABLE, NACOS_AUTH_CONSOLE_ENABLE, NACOS_AUTH_TOKEN, NACOS_AUTH_IDENTITY_KEY, NACOS_AUTH_IDENTITY_VALUE, and NACOS_CONSOLE_PORT. Different image versions may have different conversion scripts. For production deployments, mount a complete application.properties and treat the image repository or Helm Chart documentation as the source of truth.