429 Too Many Requests – gut oder schlecht? (Bitte um Hilfe)

Hallo

Ich benutze UptimeRobot und bekomme ein paar Mal pro Woche für 1-5 Minuten einen 429-Fehler, so wie es in den Logs zu sehen ist.

Ursache
HTTP 429 - Too Many Requests
Vorfall begann am
2026-08-23 10:42:58
Behebt am
2026-08-23 10:48:05
Dauer
5 Minuten und 7 Sekunden

Ich hoste die Instanz selbst und Discourse läuft hinter einem Reverse Proxy von HestiaCP.

log.txt (55.8 KB) Hier ist das Log

Ich würde gerne wissen, ob dieser 429-Fehler alle Nutzer betraf oder nur wenige?

Ich habe eine Standard-Installation in Docker mit nur Port 80 und 4 Workern.

8 GB RAM und 8 Kerne

Update: Ich habe einen Test auf meinem PC gemacht, indem ich 20/30 Beiträge geöffnet habe, bis ich den 429-Fehler bekam, und auf meinem Handy mit einem anderen Netzwerk lief alles einwandfrei. Bestätigt das, dass der 429 nur einen Client und nicht alle Besucher betrifft?

Wenn ich mich nicht irre, ja, es betrifft nur den Client, der die Flut an Anfragen sendet.

Soll ich das ignorieren oder etwas ändern, um das Limit zu erhöhen?

Wenn du die Schwellenwerte anpassen möchtest, siehe:

Das bedeutet wahrscheinlich, dass alle Anfragen so aussehen, als kämen sie von derselben IP-Adresse, und viele Benutzer 429-Fehler erhalten. Gehe zu admin/users und schau dir an, welche IP-Adresse du für dich selbst und für einen anderen Benutzer siehst. Wenn sie identisch sind, musst du die Einstellungen so konfigurieren, dass die echte IP-Adresse bei Discourse ankommt.

gerade geprüft und ich habe dieselbe interne IP-Adresse wie die anderen Benutzer! :frowning:

wie kann ich das beheben?

Läuft das Ganze über Cloudflare?

Ich habe auch gerade mit diesem Spiel zu tun :slight_smile:

ja, aber das Problem ist, dass alle Benutzer dieselbe IP haben..

ich habe das hier in app.yml ergänzt und teste es gerade

run:

  • replace:
    filename: /etc/nginx/conf.d/discourse.conf
    from: “server {”
    to: |
    server {
    set_real_ip_from 192.168.1.250;
    real_ip_header X-Forwarded-For;
    real_ip_recursive on;
  • exec: echo “Beginning of custom commands”
  • exec: echo “End of custom commands”

gerade von Desktop und Mobiltelefon getestet

ich erhalte jetzt die richtigen IP-Adressen :smiley:

Wenn du Cloudflare verwendest, brauchst du das Cloudflare-Template. Es scheint unmöglich zu sein, das offizielle Thema dazu zu finden, also versuch es vielleicht auf https://ask.discourse.com/ – Mir hat eine KI eine generierte Nachricht darüber gegeben, was zu tun ist, aber nicht, wo man die Diskussion dazu findet. Es macht mich traurig, dass die KI die Lösung findet, aber die Suche nicht. :crying_cat:

Naja.. ja, ich habe ChatGPT gefragt, vorher ein Backup gemacht und dann einen Test durchgeführt. Bisher alles gut :smiley:

Ich würde immer https://ask.discourse.com/ verwenden, anstatt eine generische KI (außer du codest gerade aktiv und die KI hat Zugriff auf den Discourse-Code).

Meinst du diesen Teil?

  1. Füge bei Cloudflare cloudflare.template.yml zu deiner app.yml-Datei hinzu.

Ist das eine Alternative zur Lösung, die ich oben gefunden habe?

Wenn du Cloudflare mit Discourse verwendest, solltest du das hinzufügen. Ich denke, das war die Vorlage, die @pfaffman erwähnt hat?

Ich denke, es hängt von deiner Konfiguration ab.

Ich habe

             ┌─────────────────────────┐
             │       Cloudflare        │
             │ WAF / CDN / DDoS / SSL  │
             └────────────┬────────────┘
                          │
                   real client IP
                          │
                          ▼
             ┌─────────────────────────┐
             │   CentminMod Nginx      │
             │                         │
             │ cloudflare.conf         │
             │ restores real IP        │
             └────────────┬────────────┘
                          │
                   X-Forwarded-For
                   = real client IP
                          │
                          ▼
             ┌─────────────────────────┐
             │    Discourse Docker     │
             │                         │
             │ trusted proxy           │
             │ 172.16.0.0/12           │
             └─────────────────────────┘

Wenn ich die Vorlage verwende, wird die IP auf die Docker-IP zurückgesetzt und nicht auf die exponierte. Ich leite dies in Nginx weiter.