Wir verwenden Discourse in einem Docker-Container. Wir haben Ratenbegrenzungen mit einer Whitelist-IP eingerichtet. Dennoch erhalten wir Ratenbegrenzungsfehler, wenn wir Anfragen von dieser IP-Adresse stellen. Ich bin ziemlich sicher, dass die Nginx-Konfiguration korrekt ist, hier ist, wie sie aussieht:
Nginx ist so konfiguriert, dass es im Falle einer erreichten Ratenbegrenzung einen Fehler protokolliert, und wir sehen tatsächlich einige Protokollmeldungen – aber keine von der Whitelist-IP. Dennoch erhalten wir eine Menge 429er, wenn wir Anfragen von der Whitelist-IP stellen. Die angeforderten URLs sind Benutzerprofile (z. B. /users/foo.json). Gibt es eine Art von Ratenbegrenzung in Discourse selbst?
Hallo, Nginx verwaltet die Ratenbegrenzung zwar, wie Sie sagten, aber Discourse hat auch seine eigene Methode zur Verwaltung der Ratenbegrenzung auf Anwendungsebene. Sam hat einen interessanten Artikel dazu:
Das Einzige, worüber ich mich wundere, ist, ob wir tatsächlich eine Ratenbegrenzung mit Ausnahmen einrichten können (d. h. IPs über diese Regeln auf die Whitelist setzen). Ich suche immer noch nach einer Möglichkeit, dies zu tun…
Ich stoße ebenfalls auf ein Ratenlimit von 60 Aufrufen pro Minute an die API, das ich anscheinend nicht umgehen kann. Ich habe all diese hier festgelegt:
Ich weiß, dass es nicht nginx ist, weil ich die Meldung „Sie haben diese Aktion zu oft ausgeführt“ erhalte, was bedeutet, dass der Discourse RateLimiter dafür zuständig ist.