429 troppe richieste: bene o male? (aiutatemi)

ciao

sto usando UptimeRobot e alcune volte a settimana ricevo errori 429 per 1-5 minuti, ma è quello che vedo nei log.

Causa principale
HTTP 429 - Troppa richiesta
Inizio incidente
2026-08-23 10:42:58
Risolto il
2026-08-23 10:48:05
Durata
5 minuti e 7 secondi

sono self-hosted e discourse è dietro un reverse proxy di HestiaCP

log.txt (55,8 KB) ecco il log

vorrei sapere se questo 429 ha colpito tutti gli utenti o solo pochi?

sono su installazione standard su docker con solo porta 80 e 4 worker.

8 gb ram e 8 core

aggiornamento: ho fatto un test sul mio pc aprendo 20/30 post finché non ho ottenuto il 429 e sul mio telefono con una rete diversa ha funzionato senza problemi. questo conferma che il 429 colpisce un singolo client e non tutti i visitatori?

Se non sbaglio, sì, influisce solo sul client che invia la raffica di richieste.

dovrei ignorarlo o dovrei modificare qualcosa per aumentare il limite?

Se desideri regolare le soglie, consulta:

Questo probabilmente significa che tutte le richieste sembrano provenire dallo stesso indirizzo IP e che molti utenti stanno ricevendo errori 429. Vai in admin/users e controlla quale indirizzo IP vedi per te e per un altro utente. Se sono gli stessi, devi configurare il sistema in modo che l’IP reale venga trasmesso a Discourse.

ho appena controllato e ho lo stesso IP interno degli altri utenti! :frowning:

come posso risolvere questo problema?

Stai utilizzando Cloudflare?

Anche io sto attraversando questa fase del gioco :slight_smile:

sì, ma il problema è che tutti gli utenti hanno lo stesso IP..

ho aggiunto questo in app.yml e sto facendo i test in questo momento

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”

ho appena fatto i test da desktop e da telefono mobile

ottengo gli indirizzi IP corretti :smiley:

Se stai usando Cloudflare, ti servirà il template di Cloudflare. Sembra impossibile trovare l’argomento ufficiale a riguardo, quindi prova a cercare su https://ask.discourse.com/ – sono riuscito a ottenere un messaggio generato da un’IA su cosa fare, ma non ho trovato dove si trovi la discussione al riguardo. Mi rattrista che l’IA trovi la soluzione, ma la ricerca no. :crying_cat:

be’.. sì, ho chiesto a ChatGPT, ho fatto un backup prima e poi ho fatto un test. fin qui tutto bene :smiley:

Userei sempre https://ask.discourse.com/ piuttosto che un’AI generica (a meno che tu non stia attivamente scrivendo codice e l’AI abbia accesso al codice di Discourse).

Si tratta di questa parte?

  1. Per Cloudflare, aggiungi cloudflare.template.yml al tuo file app.yml.

questa è un’alternativa alla soluzione che ho trovato sopra?

Se usi Cloudflare con Discourse, dovresti aggiungerlo. Credo che fosse il template menzionato da @pfaffman?

Penso che dipenda dalla tua configurazione.

Io ho

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

Se uso il template, l’IP viene ripristinato all’IP di Docker anziché a quello esposto. Io lo trasmetto in Nginx.