n8n 2.43.7 配置参数详解(环境变量实测)

n8n 2.43.7 核心环境变量分类详解:端口路径/时区/安全 Cookie/数据库/执行保留/日志/指标/任务运行器,实测生效回显与官方默认参考分明,附配置验证三法。

n8nn8n配置参数详解2026/10/17

n8n 2.43.7 配置参数详解(环境变量实测)

‍‍​​‌​> 目标:系统梳理 n8n 2.43.7 的核心环境变量,按"实测生效"与"官方默认【参考】"两类标注,给出验证配置是否生效的三种方法。实测环境:Ubuntu 22.04 服务器,n8n 2.43.7,默认数据目录 ~/.n8n,默认 SQLite 数据库。

一、配置体系总览

n8n 的配置有三个来源:

来源位置管什么
环境变量systemd 的 EnvironmentFile(如 /etc/n8n/n8n.env)或 shell export几乎全部行为,本文主角
settings 文件~/.n8n/config只存加密密钥 encryptionKey(实测文件内容仅此一项)
编辑器 UISettings 页面用户偏好、个性化设置(存数据库)

config 文件实测内容:

{"encryptionKey": "aJMWh6+Hmeqw0n4EIFhA8J/0ONBoGagG"}

首启日志原文:No encryption key found - Auto-generating and saving to: /home/node/.n8n/config。不要手工编辑它,加密密钥用 N8N_ENCRYPTION_KEY 环境变量控制(见第四节)。

二、服务地址与端口

变量默认说明实测
N8N_PORT5678HTTP 监听端口✅ 设 5682 后 curl :5682/healthz 返回 {"status":"ok"}
N8N_HOST空对外主机名(用于生成 webhook 链接等)【参考】
N8N_PATH/编辑器 UI 的路径前缀✅ 见下方重要实测
WEBHOOK_URL由 N8N_HOST/PORT 推导反向代理场景下外部可达的 webhook 基地址【参考】
N8N_EDITOR_BASE_URL空反代下编辑器外部地址【参考】
N8N_PROXY_HOPS0反代链路层数(>0 时信任 X-Forwarded-* 头)【参考】

N8N_PATH 实测细节(容易踩坑)

设 N8N_PATH=/n8n/ 后实测:

  • 编辑器页面与静态资源在 /n8n/... 下正常;
  • REST 接口仍在根路径:/rest/owner/setup、/rest/login 照常工作(/n8n/rest/... 反而 404);
  • 健康检查也在根路径:/n8n/healthz 返回的是编辑器 HTML,真正的 {"status":"ok"} 在 /healthz。

结论:N8N_PATH 只挪 UI,监控与接口路径不变,反代规则要按这个实际行为写。

三、时区与本地化

变量默认说明实测
GENERIC_TIMEZONEAmerica/New_York定时触发器、计划任务的业务时区✅
TZ系统进程系统时区(影响日志时间戳)✅ 与业务时区分开
N8N_DEFAULT_LOCALEen界面语言【参考】

GENERIC_TIMEZONE 生效验证:设为 America/New_York 后,登录态请求 GET /rest/settings 实测回显:

"timezone": "America/New_York"

💡 排查"定时任务半夜没跑"先看这两个变量:日志时间戳由 TZ 决定,定时触发时刻由 GENERIC_TIMEZONE 决定,两者不一致是最常见原因。

四、安全

变量默认说明实测
N8N_ENCRYPTION_KEY首启自动生成写入 config凭证加密密钥✅ 自动生成日志可见;【参考】显式设置后优先用环境变量
N8N_SECURE_COOKIEtrue登录 Cookie 是否带 Secure 标志✅
N8N_BLOCK_ENV_ACCESS_IN_NODEfalse禁止工作流内 $env 读环境变量【参考】
N8N_BASIC_AUTH_*已移除旧版基础认证不再存在于 2.x—

登录接口 POST /rest/login 的 Set-Cookie 对比:

默认(true):  n8n-auth=...; HttpOnly; Secure; SameSite=Lax
=false:      n8n-auth=...; HttpOnly; SameSite=Lax        # 无 Secure

即:纯 HTTP 访问编辑器时登录态无法保持(浏览器不回传 Secure Cookie)。生产建议反代 + TLS 保持默认;仅内网临时 HTTP 调试时设 false。

五、数据库

变量默认说明实测
DB_TYPEsqlitedb数据库类型✅
DB_SQLITE_POOL_SIZE0(单连接)SQLite 连接池【参考】
DB_POSTGRESDB_HOST/PORT/DATABASE/USER/PASSWORD—PostgreSQL 连接五件套✅
DB_POSTGRESDB_SCHEMApublicschema【参考】
DB_POSTGRESDB_SSL_ENABLEDfalseTLS 连接【参考】

切 PostgreSQL 实测:空库启动自动完成全部迁移(启动日志逐条 Starting migration ... / Finished migration ...),完成后统计 157 张表,/healthz 正常。SQLite 库共 157 张表(副本统计),与 PG 建表数一致。

六、执行数据保留

全部【参考官方默认】,生产前按磁盘容量评估。

变量默认说明
EXECUTIONS_DATA_SAVE_ON_SUCCESSall成功执行是否入库(可 none)
EXECUTIONS_DATA_SAVE_ON_ERRORall失败执行是否入库
EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONStrue手动执行是否入库
EXECUTIONS_DATA_PRUNEtrue自动清理
EXECUTIONS_DATA_MAX_AGE336(小时,14 天)清理阈值
EXECUTIONS_DATA_PRUNE_MAX_COUNT10000最大保留条数
EXECUTIONS_DATA_HARD_DELETE_BUFFER1(小时)硬删除缓冲

执行数据是 SQLite/PG 体积膨胀的主因;清理参数调低后记得配合《n8n 2.43.7 运维手册:备份、升级、日志与监控》的 VACUUM。

七、日志

变量默认说明实测
N8N_LOG_LEVELinfodebug/info/warn/error✅
N8N_LOG_OUTPUTconsole可 file 或 console,file✅
N8N_LOG_FILE_LOCATION~/.n8n/n8n.log日志文件完整路径✅ 踩坑见下
N8N_LOG_FILE_SIZE_MAX16(MB)单文件上限✅ 参数传入生效(轮转行为未长测)
N8N_LOG_FILE_COUNT_MAX100保留轮转份数✅ 同上

debug 级别实测格式(console):

2026-10-17T12:59:42.296Z | debug | Received CLI command {"execPath":"/usr/bin/node",...}
2026-10-17T12:59:42.365Z | debug | Lazy-loading nodes and credentials from n8n-nodes-base {"nodes":500,"credentials":410,...}

file 模式实测格式(JSON 行,逐条可解析):

{"level":"info","message":"Initializing n8n process","metadata":{"file":"start.js","function":"init","timestamp":"2026-10-17T13:01:10.369Z"}}

⚠️ 踩坑:N8N_LOG_FILE_LOCATION 要给完整文件路径(如 ~/.n8n/logs/n8n.log)。实测传成目录 /home/node/.n8n/logs/ 时,n8n 会把它当文件名创建出一个叫 logs 的文件,访问时报 Not a directory。

八、监控与遥测

变量默认说明实测
N8N_METRICSfalse暴露 Prometheus 指标✅
N8N_METRICS_NAMESPACEn8n_*指标命名空间【参考】
N8N_DIAGNOSTICS_ENABLEDtrue匿名产品遥测(上报官方)【参考】(n8n audit 报告中回显 diagnosticsEnabled: true)

开启 metrics 后实测 GET /metrics 输出样例:

# HELP n8n_expression_evaluation_duration_seconds Duration of VM-based expression evaluation in seconds.
# TYPE n8n_expression_evaluation_duration_seconds histogram
# HELP n8n_expression_code_cache_hit_total Expression code cache hits.

默认关闭时 /metrics 实测 404。健康检查始终可用:GET /healthz → {"status":"ok"}。

九、任务运行器(Task Runners)

变量默认说明实测
N8N_RUNNERS_ENABLED版本相关Code 节点独立进程执行✅ 开启时启动日志出现 n8n Task Broker ready on 127.0.0.1, port 5679
N8N_RUNNERS_BROKER_PORT5679Broker 端口【参考】(同机跑第二个 n8n 进程时必须错开,实测 5679 冲突会拒绝启动子命令)

Python runner 需要系统有 Python 3,缺失时日志原文:Failed to start Python task runner in internal mode. because Python 3 is missing from this system.(JS runner 不受影响)。

十、文件路径与扩展

变量默认说明实测
N8N_USER_FOLDER~/.n8n数据根目录✅ 以服务账户运行时务必显式设置
N8N_CUSTOM_EXTENSIONS空额外加载的自定义节点目录【参考】
N8N_COMMUNITY_PACKAGES_ENABLEDtrue社区节点开关【参考】(对应数据目录 nodes/)

十一、验证配置生效的三种方法(推荐顺序)

  1. 启动日志:journalctl -u n8n -n 50——迁移、加密密钥来源、Task Broker 端口、ready 行都在这里;
  2. 健康/指标端点:curl :$N8N_PORT/healthz;开 metrics 后抓 /metrics;
  3. 内部设置接口:登录后 GET /rest/settings,可直接看到 timezone 等生效值。

更多运维操作见《n8n 2.43.7 运维手册:备份、升级、日志与监控》;命令行验证工具见《n8n 2.43.7 CLI 命令详解与实测》。

相关文档