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

Opsætning af en webapplikation i skyen er altid sjovt og spændende.

For nylig lancerede jeg et toadmin.dk Tools-værktøj, som er hostet i AWS bag Cloudflare.

Jeg bruger AWS-applikationens load balancer og Nginx som en webserver. Efter at have lavet liv, gik jeg for at se access.log og bemærkede, at alle anmodninger var markeret som kommer fra intern (load balancer) IP.

Dette er ikke godt, hvis du vil analysere dine webserverlogfiler for besøgendes placeringer. Jeg indså, at jeg mangler eller skal foretage nogle konfigurationsændringer for at gendanne klientens IP.

Er du i samme situation som jeg var?

  Sådan begrænser du data i Google Sheets med datavalidering

Nå, her er, hvordan du kan få klient-IP’en i dine Nginx-adgangslogfiler.

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

  • Log ind på din Nginx-webserver
  • Gå til stien, hvor den er installeret (standardplacering /etc/nginx)
  • Tag en sikkerhedskopi af filen nginx.conf
  • Tilføj følgende under HTTP-blok
real_ip_header X-Forwarded-For;
set_real_ip_from 0.0.0.0/0;
  • Genstart Nginx, og du bør se den besøgendes IP i din access.log-fil

Hvis du står bag Cloudflare, så vil du se deres IP i stedet for klientens IP, så du skal også gøre nedenstående.

Hent klient-IP fra Cloudflare

Cloudflare er en fantastisk CDN- og sikkerhedsudbyder, og jeg er helt vild med det. Hvis du bruger Cloudflare som mig og gerne vil gendanne besøgendes IP i webserverloggen, så er det her hvordan du kan gøre det.

  Sådan sletter du Activision-konto permanent

Forudsat at du er logget ind på Nginx-serveren

Tag en sikkerhedskopi af dit websteds konfigurationsfil (normalt her – /etc/nginx/sites-available/ditdomæne)

Tilføj følgende i begyndelsen af ​​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;

Bemærk: Du ønsker måske at validere IP-listen fra deres Officielle side.

Genstart Nginx, og du skulle se klientens IP nu. Det har hjulpet mig, og jeg håber også du.

Find derefter ud af, hvordan du kan implementere sikre headere ved hjælp af Cloudflare Workers.

  Sådan forhindrer du Strava i at gøre din hjemmeadresse offentlig

Nydt at læse artiklen? Hvad med at dele med verden?