Discourse wird mit 3 verschiedenen globalen Ratenbegrenzungen ausgeliefert, die von Seitenadministratoren konfiguriert werden können.
Globale Ratenbegrenzungen pro IP
Diese Begrenzungen gelten für jede eindeutige IP-Adresse, die auf die Discourse-Anwendung zugreift. (Dateien, die direkt vom Dateisystem oder CDN bereitgestellt werden, sind ausgeschlossen)
Standardmäßig ist diese Ratenbegrenzung aktiviert. Sie können sie deaktivieren oder in den Meldemodus versetzen.
DISCOURSE_MAX_REQS_PER_IP_MODE: Standardeinstellung block, diese Ratenbegrenzung wird sofort angewendet. (andere Optionen sind warn, warn+block und none)
DISCOURSE_MAX_REQS_PER_IP_PER_MINUTE: Anzahl der Anfragen pro IP pro Minute (Standard ist 200)
DISCOURSE_MAX_REQS_PER_IP_PER_10_SECONDS: Anzahl der Anfragen pro IP pro 10 Sekunden (Standard ist 50)
DISCOURSE_MAX_ASSET_REQS_PER_IP_PER_10_SECONDS: Anzahl der Asset-Anfragen (Avatare/CSS) pro IP pro 10 Sekunden (Standard ist 200)
DISCOURSE_MAX_REQS_RATE_LIMIT_ON_PRIVATE: Soll die Ratenbegrenzung für private IPs gelten, die auf Discourse zugreifen? Standard ist false.
DISCOURSE_SKIP_PER_IP_RATE_LIMIT_TRUST_LEVEL: Verwenden von Ratenbegrenzungen pro Benutzer gegenüber IP-Ratenbegrenzungen für Benutzer mit dieser Vertrauensstufe oder höher (Standard 1)
DISCOURSE_MAX_REQS_PER_IP_EXCEPTIONS: eine durch Leerzeichen getrennte Liste von IP-Adressen oder CIDR-Blöcken, die von der Ratenbegrenzung pro IP ausgenommen sind. Zum Beispiel: 14.15.16.32/27 216.148.1.2
Ratenbegrenzungen für Benutzer-API
Die mobilen Anwendungen erwerben pro Gerät einen Benutzer-API-Schlüssel, um im Namen eines Benutzers auf Discourse zuzugreifen (unter Verwendung eines offenen Protokolls). Diese API-Schlüssel sind sehr streng begrenzt.
DISCOURSE_MAX_USER_API_REQS_PER_MINUTE: Standard 20
DISCOURSE_MAX_USER_API_REQS_PER_DAY: Standard 2880
Ratenbegrenzungen für Admin-API
Die administrativen API-Schlüssel können über die Seite yoursite.com/admin/api/keys generiert werden. Diese Schlüssel können im Namen von Benutzern agieren, erfordern jedoch zur Generierung Administratorrechte. Es gilt eine Begrenzung von 60 Anfragen pro Minute, die unter allen Schlüsseln geteilt wird.
Selbst gehostete Benutzer können dies in ihrer app.yml-Datei ändern. Gehostete Kunden müssen ihren Hosting-Anbieter kontaktieren.
DISCOURSE_MAX_ADMIN_API_REQS_PER_MINUTE : 60
Ratenbegrenzungen für das Data Explorer Plugin-API
DISCOURSE_MAX_DATA_EXPLORER_API_REQ_MODE: Standard warn, diese Ratenbegrenzung wird sofort angewendet. (andere Optionen sind block, warn+block und none)
DISCOURSE_MAX_DATA_EXPLORER_API_REQS_PER_10_SECONDS: 2
Hinweis: Die über die Data Explorer-UI gesendeten Anfragen zählen nicht zur Ratenbegrenzung.
Was soll ich tun, wenn ich eine Ratenbegrenzung erreiche und gedrosselt werde?
Wenn Sie die API programmatisch abfragen und eine Drosselungsantwort mit dem Statuscode 429 zurückerhalten, sollten Sie diese respektieren und langsamer werden.
Als Endbenutzer sollten Sie Ratenbegrenzungen normalerweise nicht erleben. Falls doch, werden Sie langsamer. Sie könnten dies auslösen, indem Sie schnell 50 Tabs öffnen oder etwas Ähnliches tun.
Firewall- und Proxy-Warnung! 
Wenn Sie einen Reverse-Proxy betreiben, der falsch konfiguriert ist, denkt Discourse möglicherweise, dass alle Anfragen von einer einzigen IP-Adresse kommen. Es ist sehr wahrscheinlich, dass Sie frühzeitig Ratenbegrenzungen erreichen. Stellen Sie sicher, dass Ihr Reverse-Proxy die IP korrekt weiterleitet.
Wie ändere ich diese Begrenzungen?
Um die Begrenzungen zu ändern, fügen Sie die gewünschte Änderung in Ihrer app.yml-Datei im Abschnitt env hinzu.
Wenn Sie von Discourse gehostet werden und einen Enterprise-Plan haben, kontaktieren Sie team@discourse.org, wenn Sie eine dieser Begrenzungen anpassen müssen.
Globale Ratenbegrenzungen sind bei Starter-, Pro- oder Business-Plänen nicht anpassbar.