Hur får man klient-IP från AWS, Google Cloud LB och Cloudflare i Nginx?

Att sätta upp en webbapplikation i molnet är alltid roligt och spännande.

Nyligen lanserade jag ett verktyg för adminvista.com Tools, som finns i AWS bakom Cloudflare.

Jag använder AWS-applikationens lastbalanserare och Nginx som en webbserver. Efter att ha skapat liv gick jag för att se access.log och märkte att alla förfrågningar var markerade som att de kom från intern (belastningsbalanserare) IP.

Detta är inte bra om du vill analysera dina webbserverloggar för besökarplatser. Jag insåg att jag saknar eller behöver göra några konfigurationsändringar för att återställa klientens IP.

Är du i samma situation som jag?

Tja, här är hur du kan få klientens IP i dina Nginx-åtkomstloggar.

Få besökar-IP från AWS eller Google Cloud LB

  • Logga in på din Nginx-webbserver
  • Gå till sökvägen där den är installerad (standardplats /etc/nginx)
  • Ta en säkerhetskopia av filen nginx.conf
  • Lägg till följande under HTTP-block
real_ip_header X-Forwarded-For;
set_real_ip_from 0.0.0.0/0;
  • Starta om Nginx, så bör du se besökarens IP i din access.log-fil

Om du står bakom Cloudflare kommer du att se deras IP istället för klientens IP, så du måste göra nedanstående också.

Hämta klient-IP från Cloudflare

Cloudflare är en fantastisk CDN- och säkerhetsleverantör, och jag älskar det absolut. Om du använder Cloudflare som jag och vill återställa besökarens IP i webbserverloggen, så här är hur du kan göra det.

Förutsatt att du är inloggad på Nginx-servern

Ta en säkerhetskopia av din webbplatskonfigurationsfil (vanligtvis här – /etc/nginx/sites-available/yourdomain)

Lägg till följande i början 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;

Obs: Du kanske vill validera IP-listan från deras Officiell sida.

Starta om Nginx så bör du se klientens IP nu. Detta har hjälpt mig, och jag hoppas att du också.

Ta sedan reda på hur du kan implementera säkra rubriker med Cloudflare Workers.

Gillade du att läsa artikeln? Vad sägs om att dela med världen?