Oi pessoal,
Estou rodando n8n self-hosted via Docker Compose atrás do Plesk (Ubuntu 20.04,
Plesk Obsidian 18.0.78), com nginx como proxy reverso na frente do Docker.
Configuração:
- Imagem oficial do n8n no Docker (n8nio/n8n)
- Proxy reverso: nginx do Plesk (fazendo proxy para Apache, depois para o container
Docker na porta 5678) - Domínio: subdomínio com SSL próprio (Let’s Encrypt via Plesk)
Variáveis de ambiente já configuradas:
N8N_HOST=bot.publicides.com
N8N_PORT=5678
N8N_PROTOCOL=https
WEBHOOK_URL=https://bot.publicides.com/
N8N_SECURE_COOKIE=false
N8N_TRUST_PROXY=true
N8N_PROXY_HOPS=2
N8N_PUSH_BACKEND=sse
N8N_EDITOR_BASE_URL=https://bot.publicides.com/
Diretivas adicionais do Nginx já adicionadas:
proxy_read_timeout 300s;
proxy_connect_timeout 300s;
proxy_send_timeout 300s;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
proxy_set_header Host $host;
proxy_pass_request_headers on;
Problema:
Qualquer ação no editor ao vivo (Executar nós anteriores, Testar este trigger, até
apenasabrir a aba Execuções) falha com “Problema ao executar workflow —
Conexão perdida com o servidor” na interface.
Os logs do Docker mostram este erro se repetindo:
Origin header does NOT match the expected origin. (Origin: “undefined”
-\ “N/A”, Expected: “undefined” -\ “undefined”, Protocol: “undefined”)
ResponseError: Invalid origin!
at Push.handleRequest (/usr/local/lib/node_modules/n8n/src/push/index.ts:157:10)
at /usr/local/lib/node_modules/n8n/src/push/index.ts:112:17
at Layer.handleRequest (…router/lib/layer.js:152:17)
…
at /usr/local/lib/node_modules/n8n/src/auth/auth.service.ts:158:18
O que já descarteei:
- Os recursos do servidor estão bem (RAM ~72% usada mas com bastante margem, CPU
baixa, uso de disco baixo) - Não é problema de navegador/cache — mesmo erro em modo incógnito, navegador
diferente, dispositivo diferente e dados móveis em vez de WiFi - O container do Docker está ativo e saudável (docker ps confirma “Up”)
- Webhooks funcionam perfeitamente — um POST curl manual para a URL do webhook de
produção retorna {“message”:“Webhook call received”} e o workflow executa
corretamente de ponta a ponta (confirmado pela Planilha Google de destino sendo
atualizada) - O domínio NÃO é proxied através do Cloudflare (DNS apenas / nuvem cinzenta)
Portanto, a execução do workflow via webhook funciona perfeitamente — apenas a
conexão push de WebSocket/SSE do editor ao vivo falha, aparentemente rejeitada
por uma incompatibilidade de header Origin em algum lugar entre o nginx e o
serviço de autenticação do n8n.
Alguém já enfrentou este erro específico de “Invalid origin” em push com a
configuraçãonginx do Plesk? Existe uma variável env adicional ou diretiva nginx
necessária para encaminhar/definir corretamente o header Origin para o endpoint
de push?
Obrigado antecipadamente!