Limitation de débit avec proxy inverse proxy

J’avais une question sur l’en-tête utilisé pour la limitation du débit. Pour contexte, nous avons un nginx.conf avec set_real_ip et nous utilisons un fournisseur qui nous envoie du trafic avec l’IP réelle du client dans l’en-tête Some-Client-IP.

  sendfile on;
set_real_ip_from ...;
set_real_ip_from ...;
set_real_ip_from ...;
set_real_ip_from ...;

real_ip_header Some-Client-IP;
real_ip_recursive on;

Some-Client-IP est ce que nous obtenons de l’amont avec l’IP réelle de l’utilisateur.

Dans la configuration discourse.conf actuelle dans conf.d pour nginx, nous avons par défaut :

Pour je pense toutes les routes en général

    proxy_set_header Host $http_host;
    proxy_set_header X-Request-Start "t=${msec}";
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $thescheme;
    proxy_pass http://discourse;

Est-ce que Discourse examine X-Forwarded-For ou X-Real-IP pour la limitation du débit ? Je pense qu’il examine X-Forwarded-For car dans production.log je vois l’IP de mon proxy inverse. La solution correcte est-elle de changer X-Forwarded-For pour qu’il examine également $remote_addr ?

D’après ce fil de discussion, il semble que quelqu’un ait simplement supprimé cette ligne Last IP shows Reverse Proxy IP address - #5 by schleifer

Merci

1 « J'aime »

Avez-vous ajouté cette section à votre app.yml ? Ces paramètres doivent se trouver dans le NGINX qui se trouve à l’intérieur du conteneur. Voir aussi Set up Discourse on a server with existing Apache sites. C’est pour Apache, mais la partie qui va dans app.yml est la même, quel que soit le système de proxy inverse utilisé.

Ces strophes se trouvent dans le fichier nginx.conf actuel au lieu de notre conteneur, sous conf.d/discourse.conf.

Pour la partie app.yml, vouliez-vous dire

run:
  - replace:
      filename: /etc/nginx/conf.d/discourse.conf
      from: "types {"
      to: |
        set_real_ip_from 172.17.0.0/24;
        real_ip_header X-Forwarded-For;
        real_ip_recursive on;
        types {

Nous n’avons pas de HAProxy à l’extérieur des conteneurs, nous avons un fournisseur DNS qui effectue un prétraitement pour nous, donc le real_ip_header se trouve dans une autre valeur d’en-tête, et nous avons en fait une liste d’adresses IP qui doivent être remplacées.

Nous avons également vu une liste de X-Forwarded-For, je me demande si c’est la cause des mauvaises adresses IP qui s’affichent.

Par exemple, je pense que nous voyons 111.11.11.111 dans les journaux de production, mais pas 55.555.55.55, ce que nous voulons (car il est défini dans x-real-ip).

HTTP_X_FORWARDED_FOR	111.11.11.111, 22.22.22.222, 333.33.33.333, 55.555.55.55
HTTP_X_REAL_IP	55.555.55.55

Vous devrez alors ajuster la configuration recommandée en conséquence.

Ou, si vous ne vous souciez pas des adresses IP ou de la limitation de débit, vous pouvez le rappeler au modèle de limitation de débit.

1 « J'aime »