Lorsque vous déployez Discourse dans un conteneur avec 1panel, configurez un proxy inverse pour votre site et utilisez Cloudflare CDN pour votre nom de domaine, comment résoudre le problème où tout le trafic apparaît comme provenant des serveurs de Cloudflare plutôt que de l’adresse IP réelle du navigateur de l’utilisateur ?
Vous souhaitez utiliser le modèle Cloudflare dans votre fichier app.yml.
J’ai essayé, mais ça ne marche pas
. La raison de l’échec pourrait être que j’ai déployé via un conteneur 1panel et utilisé un proxy inverse ?
Pouvez-vous modifier directement le fichier de configuration nginx ? Si oui, apportez les modifications suggérées ici. Après avoir rechargé le service nginx, cela devrait fonctionner. J’espère que cela vous aidera !
Curieux des raisons de faire fonctionner 2 reverse proxies ? Un chez l’hébergeur et CloudFlare. Y a-t-il une raison technique ?
J’ai déployé Discourse de manière conteneurisée en utilisant le panneau de gestion de serveur 1Panel (open source), ce qui facilite la gestion du serveur.
L’architecture de 1Panel est la suivante : Utilisateur -> Cloudflare -> Nginx de 1Panel -> Conteneur Discourse.
Ma compréhension est que même si je modifie la configuration app.yml de Discourse, le Nginx de 1Panel reste toujours interposé entre Cloudflare et Discourse.
Il s’agit donc d’une contrainte technique introduite par 1panel.
Exécutez-vous plusieurs serveurs ou uniquement Discourse sur le VPS ? Si vous exécutez uniquement Discourse, vous n’avez probablement pas besoin de 1panel, sauf s’il existe une raison technique nécessitant 1panel.
Mon installation de Discourse est native sur un VPS derrière Cloudflare. Cette configuration fonctionne.
En plus de Discourse, il y a aussi OpenClaw ![]()
Presque certainement.
L’adresse IP que vous voyez est-elle l’adresse IP du conteneur 1panel ?
En utilisant la vue administrateur des utilisateurs, l’adresse IP de dernière utilisation affichée est une adresse IP Cloudflare.
Avez-vous mis en œuvre cela ?
Il s’agit de la solution pour Apache afin d’utiliser l’adresse IP de l’utilisateur final au lieu de l’adresse IP de Cloudflare.
Merci, j’utilise nginx. J’ai consulté quelques tutoriels qui expliquent comment configurer le proxy inverse dans le fichier de configuration nginx de l’hôte. Je testerai cela quand j’aurai un moment.
Avez-vous installé le modèle Cloudflare comme suggéré ? Si non, pourquoi demandez-vous de l’aide ici ?
Modèle Cloudflare ? J’ai déjà modifié le fichier de configuration YAML et activé le modèle Cloudflare. Cependant, j’ai déployé Discourse via des conteneurs dans 1Panel (l’architecture de 1Panel est : utilisateur → Cloudflare → Nginx de 1Panel → conteneur Discourse). Modifier uniquement le fichier YAML ne suffit pas ; il faut également modifier le fichier de configuration du proxy inverse Nginx dans 1Panel. Je n’ai pas le temps pour le moment et je n’ai pas encore commencé à apporter ces modifications.
Cela semble indiquer que vous devez modifier l’instance de nginx de 1Panel pour utiliser sa fonctionnalité real_ip afin de traiter les requêtes des utilisateurs. Cloudflare transmet ces informations via l’en-tête CF-Connecting-IP, et vous pouvez exploiter cet en-tête pour indiquer à nginx comment se configurer.
Il serait probablement judicieux de mettre en place une automatisation basée sur des scripts pour télécharger régulièrement les listes d’adresses proxy de Cloudflare (IPv4, IPv6) afin de maintenir vos plages real_ip de nginx à jour.
Si vous n’avez pas accès à votre fichier nginx.conf de 1Panel, vous êtes probablement dans une impasse. La combinaison de real_ip de nginx et de l’en-tête CF-Connecting-IP de Cloudflare est la méthode prévue pour résoudre ce problème lorsque vous gérez votre propre proxy inverse devant un Discourse auto-hébergé.