mcdanlj
(Michael K Johnson)
Juillet 16, 2026, 1:02
1
Ces derniers mois (je ne sais pas exactement quand cela a commencé), j’ai remarqué que ma configuration nginx externe, telle que documentée dans Add an offline page to display when Discourse is rebuilding or starting up , pour transmettre la véritable adresse IP, est ignorée.
Cette configuration nginx externe fonctionnait depuis des années :
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Real-IP $remote_addr;
Maintenant, je vois tout le trafic attribué au réseau Docker interne dans l’espace RFC1918, comme ceci :
Cela casse évidemment l’application de cette pénalité aux autres utilisateurs partageant cette adresse IP et toutes les autres utilisations de la véritable adresse IP distante.
Je suppose que cela a été abordé quelque part et que je cherche simplement mal. Mais j’apprécierais des indications sur ce qui aurait pu changer, afin que je puisse m’y adapter.
pfaffman
(Jay Pfaffman)
Juillet 16, 2026, 1:27
2
Je me souviens d’avoir vu quelque chose à ce sujet récemment, mais je ne retrouve pas non plus la référence. Handling the "chain of trust" of the end user's real IP - #8 by supermathie contient un lien vers le modèle Cloudflare, qui me semble être un bon exemple à suivre.
run:
- file:
path: /etc/nginx/conf.d/outlets/server/real-ip-header.conf
chmod: 644
contents: |
real_ip_header cf-connecting-ip;
- exec:
cmd:
# avoid the trap of specifying both URLs on one curl line; the data might not have a final newline
# print sprintf looks dubious at first, but avoids the problem of "how many times do you backslash a \\\\n"
- curl -s https://www.cloudflare.com/ips-v4/ | awk '{print sprintf("set_real_ip_from %s;", $0)}' > /etc/nginx/conf.d/outlets/server/set-real-ip-from-cloudflare.conf
- curl -s https://www.cloudflare.com/ips-v6/ | awk '{print sprintf("set_real_ip_from %s;", $0)}' >> /etc/nginx/conf.d/outlets/server/set-real-ip-from-cloudflare.conf
Voici ce que je fais, et cela semble toujours fonctionner (avec « Discourse 2026.6.0-latest - GitHub - discourse/discourse: A platform for community discussion. Free, open, simple. · GitHub version 5c507d8359f4d6e8a5d98780c622d51cedbd9bd7 ») :
after_bundle_exec:
- replace:
filename: /etc/nginx/conf.d/discourse.conf
from: "types {"
to: |
set_real_ip_from 192.168.1.0/24;
set_real_ip_from 192.168.11.0/24;
set_real_ip_from 172.16.0.0/12;
set_real_ip_from 10.0.0.0/8;
real_ip_recursive on;
real_ip_header X-Forwarded-For;
types {
1 « J'aime »
chapoi
Juillet 16, 2026, 2:39
3
Probablement lié à cet engagement : FIX: nginx sample configuration should be setting x-f-f to the end us… · discourse/discourse@b4a3389 · GitHub
Cela pourrait vous aider :
Contexte
Discourse doit être au courant de l’adresse IP réelle de l’utilisateur final.
Cependant, un utilisateur final ne se connecte jamais directement à Discourse car il y a toujours un ou plusieurs serveurs web en amont (nginx fonctionnant dans le conteneur Discourse) en place. Ainsi, nous avons besoin d’un moyen de transmettre ces informations à Discourse de manière fiable.
L’en-tête x-forwarded-for est la solution. Dans ce sujet, je décrirai les mécanismes spécifiques pour gérer correctem…
2 « J'aime »
mcdanlj
(Michael K Johnson)
Juillet 16, 2026, 3:16
4
Comme d’habitude, publier et voir les réponses m’aide à trouver d’autres publications similaires. par ex.
Hi,
I have researched quite a lot but nothing seems to work with me.
I have a discourse setup installed. And I have this remote reverse proxy server that acts as a HTTPS layer between the user and the main discourse server..
[image]
I have included these revers proxy settings properly.. But why does it still show my Reverse Proxy server’s IP Address (hostname to be specific)
[image]
Merci à tous ! Je vais maintenant configurer set_real_ip_from dans le conteneur nginx !
Je vais couvrir l’ensemble de l’espace RFC1918. Pour référence des autres, cela donnerait :
after_bundle_exec:
- replace:
filename: /etc/nginx/conf.d/discourse.conf
from: "types {"
to: |
set_real_ip_from 192.168.0.0/16;
set_real_ip_from 172.16.0.0/12;
set_real_ip_from 10.0.0.0/8;
real_ip_recursive on;
real_ip_header X-Forwarded-For;
types {
1 « J'aime »