N8N - Origin header does NOT match the expected origin
N8N 是一个图形化的低代码自动化流程平台。
在使用 Docker 进行部署,且前面使用 Nginx 反代时,页面操作经常会有报错,提示:Origin header does NOT match the expected origin.
报这个错误的原因,通常是直接使用了官方推荐的docker 命令进行服务启动,如:
1 2
| docker volume create n8n_data docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
|
这种启动方式默认的 Orgin 是 http://127.0.0.1:8080/
, 你在服务启动日志的末尾也能看到这个地址。
但是当使用 Nginx 反代时,需要使用一个域名,如:n8n.example.com,进行访问,此时 Orgin 为 https://n8n.example.com/
要解决这个问题,需要给容器增加一个环境变量:
1
| WEBHOOK_URL= https://n8n.example.com/
|
完整启动命令如下:
1 2 3
| #!/bin/bash docker volume create n8n_data docker run -it --rm --name n8n -e WEBHOOK_URL=https://n8n.example.com/ -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
|
或
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| version: '3' services: n8n: image: docker.n8n.io/n8nio/n8n container_name: n8n environment: - WEBHOOK_URL=https://n8n.example.com/ ports: - "5678:5678" volumes: - n8n_data:/home/node/.n8n restart: unless-stopped deploy: resources: limits: cpus: '0.5' memory: 512M
volumes: n8n_data:
|