the discourse don’t it does not support the x-forwarded field and therefore shows me all the time the ip address of my reverse proxy when we look for example from which ip the user is registering etc …
I sniff the request on discourse and the X-forwarder is present but in access.log the IP view is the reverse proxy
I view on interne il necessary to change the configuration template or de configuration file nginx for Discourse (not nginx on NPM)
do you help me for this ? because the discourse activate de tempalte web.ratelimite and send most error 429
Ho un server Debian con Apache 2.4 vHost e uno di questi vHost è il container Docker di Discourse. Su Apache è abilitato mod_remoteip (non c’era mod_extract_forwarded), ma senza alcuna opzione di configurazione. La configurazione del vHost è piuttosto semplice:
RequestHeader set X-Forwarded-Proto "https"
ProxyPreserveHost On
ProxyRequests Off
ProxyPass /.well-known !
ProxyPass / http://localhost:8083/
ProxyPassReverse / http://localhost:8083/
8083 è la porta http esposta del container Docker di Discourse.
Questo è praticamente tutto.
Vedo i diversi visitatori (per IP) nelle statistiche create con l’access.log di Apache e, cosa più importante, vedo anche diversi ultimi IP per gli utenti (questo è stato un semplice controllo per me). Quindi sembra che gli indirizzi IP dei visitatori siano esposti attraverso il proxy Apache a Discourse. Questo era già il caso senza mod_remoteip abilitato, che ho attivato solo qualche giorno fa.
Comunque, ho di nuovo problemi. Un crawler o un attacco DoS sta girando sul nostro server con un IPv4 da Cracovia, Polonia. Sta generando molti errori 429. Questo va bene per me, ma anche tutti gli altri visitatori ricevono questi errori.
È anche questo il caso? Quindi, quando il limite di connessione viene raggiunto, tutti ricevono un errore? O per IP?
Manca qualcosa nella mia configurazione o posso migliorarla/ottimizzarla? Abbiamo avuto problemi con Claudebot alcune settimane e anche qualche giorno fa, quindi forse il limite deve essere alzato un po’.
Ho appena modificato app.yml ed eseguito una ricostruzione del container. Il bot è tornato quasi istantaneamente dopo che il container è stato riavviato. Non vedo ancora errori 429. Spero che rimanga così per gli utenti “normali”.
Questo è il punto… Quando controllo la pagina di amministrazione degli utenti, ho sempre visto voci diverse per l’“ultimo IP”. Quindi in qualche modo Discourse ha visto i veri IP degli utenti, anche senza mod_remoteip e anche senza la modifica della configurazione Nginx.
Comunque, sono curioso di vedere se la modifica della configurazione Nginx ha portato alla soluzione di questo problema!