Problem mit Fehler 429 bei Reverse Proxy

Hi, My Discourse is run with reverse proxy (NPM)

the discourse don’t it does not support the x-forwarded field and therefore shows me all the time the ip address of my reverse proxy when we look for example from which ip the user is registering etc …

I sniff the request on discourse and the X-forwarder is present but in access.log the IP view is the reverse proxy

I view on interne il necessary to change the configuration template or de configuration file nginx for Discourse (not nginx on NPM)

do you help me for this ? because the discourse activate de tempalte web.ratelimite and send most error 429

:frowning:
Thank you for you help

See How to set up Discourse on a server with existing Apache sites - sysadmin - Discourse Meta for an example of how to conduits) configure the internal nginx for your reverse proxy ip.

1 „Gefällt mir“

Ich habe damit auch zu kämpfen.

Ich habe einen Debian-Server mit Apache 2.4 vHosts und einer dieser vHosts ist der Discourse Docker-Container. Auf Apache ist mod_remoteip aktiviert (es gab kein mod_extract_forwarded), aber ohne Konfigurationsoptionen. Die vHost-Konfiguration ist ziemlich einfach:

RequestHeader set X-Forwarded-Proto "https"
ProxyPreserveHost On
ProxyRequests Off
ProxyPass /.well-known !
ProxyPass / http://localhost:8083/
ProxyPassReverse / http://localhost:8083/

8083 ist der exponierte HTTP-Port des Discourse Docker-Containers.

Das ist im Grunde alles.

Ich sehe die verschiedenen Besucher (nach IP) in den Statistiken, die mit dem Apache access.log erstellt werden, und wichtiger noch, ich sehe auch verschiedene letzte IPs für die Benutzer (das war für mich eine einfache Überprüfung). Es scheint also, dass die IP-Adressen der Besucher über den Apache-Proxy an Discourse weitergegeben werden. Dies war bereits der Fall, ohne dass mod_remoteip aktiviert war, was ich erst vor einigen Tagen getan habe.

Wie auch immer, ich habe jetzt wieder Probleme. Ein Crawler oder ein DoS-Angriff läuft auf unserem Server mit einer IPv4 aus Krakau, Polen. Er erzeugt eine Menge 429-Fehler. Das ist für mich in Ordnung, aber alle anderen Besucher erhalten ebenfalls diese Fehler.

Ist das auch der Fall? Wenn also das Verbindungslimit erreicht ist, erhält jeder einen Fehler? Oder pro IP?

Fehlt etwas in meiner Konfiguration oder kann ich sie verbessern/optimieren? Wir hatten vor einigen Wochen und auch vor einigen Tagen Probleme mit dem Claudebot, daher muss das Limit vielleicht etwas angehoben werden.

Danke und Grüße,
Roi

Haben Sie die Dinge hinzugefügt, um zu sehen, dass die Remote-IP-Adresse Discourse erreicht, oder scheinen alle Benutzer vom Proxy zu kommen?

Suchen Sie nach x-forwarded-for

Ähm… :see_no_evil: Ich habe den Nginx (Discourse) Teil vergessen. :see_no_evil: Danke! :slight_smile:

Ich habe gerade app.yml bearbeitet und einen Rebuild des Containers durchgeführt. Der Bot kam fast sofort zurück, nachdem der Container wieder hochgefahren war. Ich sehe noch keine 429-Fehler. Hoffentlich bleibt das für „normale“ Benutzer auch so.

Das ist es ja… Wenn ich die Admin-Seite der Benutzer überprüfe, habe ich immer unterschiedliche „letzte IP“-Einträge gesehen. Discourse hat also irgendwie die echten IPs der Benutzer gesehen, auch ohne mod_remoteip und auch ohne die Nginx-Konfigurationsänderung. :man_shrugging:

Wie auch immer, ich bin gespannt, ob die Nginx-Konfigurationsänderung die Lösung für dieses Problem gebracht hat! :slight_smile:

1 „Gefällt mir“