Hvordan få klient-IP fra AWS, Google Cloud LB og Cloudflare i Nginx?

Å sette opp en nettapplikasjon i skyen er alltid morsomt og spennende.

Nylig lanserte jeg et tipsbilk.net Tools-verktøy, som ligger i AWS bak Cloudflare.

Jeg bruker AWS-applikasjonens lastbalanser og Nginx som en webserver. Etter å ha laget liv, gikk jeg for å se access.log og la merke til at alle forespørsler ble merket som kommer fra intern (lastbalanser) IP.

Dette er ikke bra hvis du vil analysere webserverloggene dine for besøksplasseringer. Jeg innså at jeg mangler eller må gjøre noen konfigurasjonsendringer for å gjenopprette klientens IP.

Er du i samme situasjon som meg?

  De 5 beste robotgressklipperne for hagen din i 2024

Vel, her er hvordan du kan få klient-IP-en i Nginx-tilgangsloggene dine.

Få besøkendes IP fra AWS eller Google Cloud LB

  • Logg på Nginx-nettserveren din
  • Gå til banen der den er installert (standardplassering /etc/nginx)
  • Ta en sikkerhetskopi av filen nginx.conf
  • Legg til følgende under HTTP-blokk
real_ip_header X-Forwarded-For;
set_real_ip_from 0.0.0.0/0;
  • Start Nginx på nytt, og du bør se den besøkendes IP i filen access.log

Hvis du står bak Cloudflare, vil du se deres IP i stedet for klientens IP, så du må gjøre det nedenfor også.

Få klient-IP fra Cloudflare

Cloudflare er en flott CDN- og sikkerhetsleverandør, og jeg elsker det absolutt. Hvis du bruker Cloudflare som meg og ønsker å gjenopprette besøkendes IP i webserverloggen, så kan du gjøre det her.

  Slik løser du feilen 'iMessage må aktiveres for å sende denne meldingen'

Forutsatt at du er logget på Nginx-serveren

Ta en sikkerhetskopi av nettstedets konfigurasjonsfil (vanligvis her – /etc/nginx/sites-available/yourdomain)

Legg til følgende i begynnelsen av filen

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;

Merk: Det kan være lurt å validere IP-listen fra deres offisiell side.

Start Nginx på nytt, og du bør se klientens IP nå. Dette har hjulpet meg, og jeg håper du også.

Finn deretter ut hvordan du kan implementere sikre overskrifter ved å bruke Cloudflare Workers.

  6 løsninger for å sikkerhetskopiere dine Synology NAS-data til skyen

Likte du å lese artikkelen? Hva med å dele med verden?