Bonjour à tous,
J’exécute n8n auto-hébergé via Docker Compose derrière Plesk (Ubuntu 20.04,
Plesk Obsidian 18.0.78), avec nginx comme proxy inverse devant Docker.
Configuration :
- Image Docker officielle n8n (n8nio/n8n)
- Proxy inverse : nginx de Plesk (proxying vers Apache, puis vers le conteneur
Docker sur le port 5678) - Domaine : sous-domaine avec SSL propre (Let’s Encrypt via Plesk)
Variables d’environnement déjà définies :
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/
Directives nginx supplémentaires déjà ajoutées :
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;
Problème :
Toute action de l’éditeur en direct (Exécuter les nœuds précédents, Tester ce déclencheur, même
juste l’ouverture de l’onglet Exécutions) échoue avec « Problème lors de l’exécution du workflow —
Connexion perdue avec le serveur » dans l’interface utilisateur.
Les journaux Docker affichent cette erreur qui se répète :
L’en-tête Origin ne correspond PAS à l’origine attendue. (Origin: « undefined »
→ « N/A », Attendu: « undefined » → « undefined », Protocole: « 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
Ce que j’ai déjà écarté :
- Les ressources du serveur vont bien (~72 % de RAM utilisée mais beaucoup de marge, CPU faible,
utilisation disque faible) - Ce n’est pas un problème de navigateur/cache — même erreur en mode incognito, différents
navigateurs, différents appareils, et données mobiles au lieu du WiFi - Le conteneur Docker est actif et sain (docker ps confirme « Up »)
- Les webhooks fonctionnent parfaitement — une requête curl POST manuelle vers l’URL de webhook en production
retourne {“message”:“Webhook call received”} et le workflow s’exécute
correctement d’un bout à l’autre (confirmé par la mise à jour du Google Sheet cible) - Le domaine n’est PAS proxifié via Cloudflare (DNS uniquement / nuage gris)
Donc l’exécution du workflow via webhook fonctionne parfaitement — seule la
connexion push WebSocket/SSE de l’éditeur en direct échoue, apparemment rejetée
à cause d’une incompatibilité d’en-tête Origin quelque part entre nginx et le
service d’authentification de n8n.
Quelqu’un a-t-il rencontré cette erreur « Invalid origin » push spécifique avec
la configuration nginx de Plesk ? Y a-t-il une variable d’environnement supplémentaire ou une directive nginx
né cessaire pour transférer/définir correctement l’en-tête Origin pour le point de terminaison push ?
Merci d’avance !