You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker中n8n经Caddy反向代理后Webhook URL带5678端口问题求助

解决n8n Webhook URL带容器端口的问题

核心原因

n8n默认会用容器内部的5678端口生成Webhook URL,无法自动识别反向代理后的外部访问地址,必须手动指定外部的域名、协议等参数。

步骤1:给n8n设置环境变量

运行n8n容器时,添加以下环境变量,强制n8n使用外部访问参数生成URL:

  • N8N_HOST: 填写你的外部域名,比如example.com或n8n.example.com
  • N8N_PROTOCOL: 设置为https
  • WEBHOOK_URL: 指定Webhook基础地址,比如https://example.com/webhook
  • VUE_APP_URL_BASE_API: 设置为https://example.com/rest(对应你的外部域名)

Docker运行命令示例:

docker run -d \
  --name n8n \
  -p 5678:5678 \
  -e N8N_HOST="example.com" \
  -e N8N_PROTOCOL="https" \
  -e WEBHOOK_URL="https://example.com/webhook" \
  -e VUE_APP_URL_BASE_API="https://example.com/rest" \
  n8nio/n8n

如果使用docker-compose,在n8n服务的environment字段中添加上述变量即可。

步骤2:优化Caddy配置(可选)

给Caddy反向代理添加X-Forwarded-Host头部,确保n8n能获取正确的外部域名:

n8n.example.com {
  reverse_proxy localhost:5678 {
    header_up X-Forwarded-Proto https
    header_up X-Forwarded-Port 443
    header_up X-Forwarded-Host {host}
  }
}

步骤3:验证效果

重启n8n容器和Caddy服务后,打开n8n界面查看Webhook节点的URL,此时应该已经是不带5678端口的正确地址,Telegram等外部服务即可正常连接Webhook端点。

内容的提问来源于stack exchange,提问作者Amir Hossein Bagheri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 22:42:09