n8n 是做自动化工作流的,类似 Zapier 但可以自己部署。
最典型的用法:每天早上 9 点把某个 RSS 的内容汇总,推到企业微信。
但很多人部署完发现:设的 9 点,实际 17 点才跑。
原因:容器时区默认 UTC
n8n 官方镜像默认用 UTC,你在界面里设 9 点,它按 UTC 9 点执行,也就是北京时间 17 点。
正确部署方式
docker run -d \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
-e GENERIC_TIMEZONE="Asia/Shanghai" \
-e TZ="Asia/Shanghai" \
-e N8N_DEFAULT_LOCALE="zh-CN" \
--restart=always \
n8nio/n8n
三个环境变量缺一不可:
| 变量 | 作用 |
|---|---|
TZ |
容器系统时区 |
GENERIC_TIMEZONE |
n8n 内部工作流时区 |
N8N_DEFAULT_LOCALE |
界面语言 |
只设 TZ 不够,n8n 有自己的时区配置,两个都要设。
反代后 Webhook 地址不对
这是第二个坑。
部署完配置了域名反代,结果 Webhook 节点的 URL 显示成 http://localhost:5678/webhook/xxx,外部访问不了。
需要在环境变量里指定外部地址:
-e WEBHOOK_URL="https://n8n.yourdomain.com/"
完整命令:
docker run -d \
--name n8n \
-p 5678:5678 \
-v n8n_data:/home/node/.n8n \
-e GENERIC_TIMEZONE="Asia/Shanghai" \
-e TZ="Asia/Shanghai" \
-e WEBHOOK_URL="https://n8n.yourdomain.com/" \
--restart=always \
n8nio/n8n
宝塔反代配置
n8n 有 WebSocket,反代要带升级头:
location / {
proxy_pass http://127.0.0.1:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 300s;
}
proxy_read_timeout 300s 也要加,不然长任务执行到一半会断。
验证时区是否生效
部署后进入 n8n,新建一个工作流,加一个「Schedule Trigger」节点,设成 5 分钟后执行。
看日志时间戳:
- 如果显示的是北京时间 → 对了
- 如果显示的时间比北京时间早 8 小时 → 时区没生效
内存不够会崩
n8n 默认内存限制比较保守。机器内存小于 2G 的话,跑几个工作流可能 OOM。
加个环境变量放宽:
-e N8N_DEFAULT_BINARY_DATA_MODE=filesystem
把二进制数据存到磁盘而不是内存。
一个建议
第--次部署先用 IP 加端口跑通,再配域名。
时区、Webhook、反代三个问题叠在一起排查会很乱。先确认基础功能正常,再一层层加。
n8n 的环境变量清单和我踩过的几个坑,整理在 [俗人源码网],需要的自取。
1、本站所有资源均收集于互联网,分享目的仅限学习与参考。如有侵权,请联系 1685698671@qq.com 及时删除!
2、本站资源不保证完整性和安全性,下载后请自行检测。使用过程中出现的任何问题均与本站无关,敬请自行处理。
3、本站资源仅限个人学习研究使用,严禁用于任何违法违纪用途。因使用者违规使用产生的一切后果,由使用者自行承担,本站不承担任何责任。


评论(0)