Come ottenere l’IP del client da AWS, Google Cloud LB e Cloudflare in Nginx?

La configurazione di un’applicazione Web nel cloud è sempre divertente ed entusiasmante.

Di recente, ho lanciato uno strumento winadmin.it Tools, che è ospitato in AWS dietro Cloudflare.

Sto utilizzando il bilanciamento del carico dell’applicazione AWS e Nginx come server Web. Dopo aver creato la vita, sono andato a vedere access.log e ho notato che tutte le richieste erano contrassegnate come provenienti dall’IP interno (bilanciamento del carico).

Questo non va bene se vuoi analizzare i log del tuo server web per le posizioni dei visitatori. Mi sono reso conto che mi manca o devo apportare alcune modifiche alla configurazione per ripristinare l’IP del client.

Sei nella mia stessa situazione?

Bene, ecco come puoi ottenere l’IP del client nei log di accesso di Nginx.

Ottenere l’IP del visitatore da AWS o Google Cloud LB

  • Accedi al tuo server web Nginx
  • Vai al percorso in cui è installato (posizione predefinita /etc/nginx)
  • Fai un backup del file nginx.conf
  • Aggiungi quanto segue in Blocco HTTP
real_ip_header X-Forwarded-For;
set_real_ip_from 0.0.0.0/0;
  • Riavvia Nginx e dovresti vedere l’IP del visitatore nel tuo file access.log

Se sei dietro Cloudflare, vedrai il loro IP invece dell’IP del client, quindi devi fare anche quanto segue.

Ottenere l’IP del client da Cloudflare

Cloudflare è un ottimo fornitore di CDN e sicurezza e lo adoro assolutamente. Se stai utilizzando Cloudflare come me e desideri ripristinare l’IP del visitatore nel registro del server Web, ecco come puoi farlo.

Supponendo che tu abbia effettuato l’accesso al server Nginx

Fai un backup del file di configurazione del tuo sito (di solito qui – /etc/nginx/sites-available/yourdomain)

Aggiungere quanto segue all’inizio del file

set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 104.16.0.0/13;
set_real_ip_from 104.24.0.0/14;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 131.0.72.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 172.64.0.0/13;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 199.27.128.0/21;
set_real_ip_from 2400:cb00::/32;
set_real_ip_from 2606:4700::/32;
set_real_ip_from 2803:f800::/32;
set_real_ip_from 2405:b500::/32;
set_real_ip_from 2405:8100::/32;
set_real_ip_from 2c0f:f248::/32;
set_real_ip_from 2a06:98c0::/29;
real_ip_header CF-Connecting-IP;

Nota: potresti voler convalidare l’elenco IP dal loro pagina ufficiale.

Riavvia Nginx e ora dovresti vedere l’IP del client. Questo mi ha aiutato, e spero anche tu.

Successivamente, scopri come implementare intestazioni sicure utilizzando Cloudflare Workers.

Ti è piaciuto leggere l’articolo? Che ne dici di condividere con il mondo?