Sto spostando un’istanza Discourse esistente dalla sua sede attuale a una VM EC2 di AWS.
Il sito si trova dietro i load balancer di Amazon. Ho già modificato con successo app.yml con le direttive set_real_ip_from appropriate in modo che NGINX conosca gli IP del load balancer. So che questo funziona perché vedo il mio IP reale quando controllo l’ultimo IP del mio utente.
Tuttavia, quando tento di caricare il backup da 375 MB dal vecchio server, il nuovo sito inizia a emettere errori 429 quando il file è circa al 35% caricato e il processo di caricamento fallisce. Gli header nelle risposte 429 identificano “discourse-rate-limit-error-code: id_10_secs_limit”.
Ho trovato questo sorprendente. Avevo aperto la finestra degli Strumenti per sviluppatori del mio browser nella scheda “Network” e ho visto molti piccoli blocchi caricati (penso fossero 5 MB) abbastanza velocemente. Ho una connessione Internet veloce da 200 Mbps, quindi forse è semplicemente troppo veloce per le impostazioni predefinite del limitatore di velocità? O forse ci si aspettava che le attività di amministrazione venissero solitamente eseguite da una rete privata (cosa che non è possibile con la mia configurazione AWS)?
Ma aspetta, c’è di più! Ho provato a disabilitare il limitatore di velocità commentando la riga “templates/web.ratelimited.template.yml” da app.yml e ricostruendo l’app, ma non ha funzionato. Ho ancora ricevuto errori 429 quando il mio file era circa al 35% caricato.
Quindi, ho rapidamente aggiunto le variabili di ambiente qui sotto al file app.yml, ho ricostruito e sono finalmente riuscito a caricare il backup da ripristinare.
DISCOURSE_MAX_REQS_PER_IP_MODE: none
DISCOURSE_MAX_REQS_PER_IP_PER_10_SECONDS: 1000
Credo che queste siano impostazioni del limitatore di velocità, quindi è stato strano vedere qualcosa rispondere a queste impostazioni quando il limitatore di velocità era apparentemente disabilitato.
In conclusione, vorrei qualche indicazione su:
- Il limitatore di velocità dovrebbe bloccare i caricamenti di backup in questo modo?
- Perché il limitatore di velocità non è stato disabilitato quando ho commentato quella riga e ricostruito l’app?
Grazie!