L'adresse IP réelle n'est plus reconnue via le proxy

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. :frowning: Mais j’apprécierais des indications sur ce qui aurait pu changer, afin que je puisse m’y adapter.

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.

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 »

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 :

2 « J'aime »

Comme d’habitude, publier et voir les réponses m’aide à trouver d’autres publications similaires. :rofl: par ex.

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 »