Como obter o IP do cliente da AWS, Google Cloud LB e Cloudflare no Nginx?

Configurar um aplicativo da Web na nuvem é sempre divertido e empolgante.

Recentemente, lancei um Ferramentas Tecnologico ferramenta, que está hospedada na AWS por trás da Cloudflare.

Estou usando o balanceador de carga de aplicativos da AWS e o Nginx como servidor da web. Depois de ganhar vida, fui ver o access.log e notei que todas as solicitações estavam marcadas como vindas de interno (balanceador de carga) IP.

Isso não é bom se você quiser analise os logs do seu servidor web para locais de visitantes. Percebi que estou ausente ou preciso fazer algumas alterações de configuração para restaurar o IP do cliente.

Você está na mesma situação que eu?

Bem, aqui está como você pode obter o IP do cliente em seus logs de acesso Nginx.

Obtendo o IP do visitante da AWS ou Google Cloud LB

  • Entre no seu servidor web Nginx
  • Vá para o caminho onde está instalado (localização padrão /etc/nginx)
  • Faça um backup de nginx.conf Arquivo
  • Adicione o seguinte no bloco HTTP
 real_ip_header X-Forwarded-For;
set_real_ip_from 0.0.0.0/0;
  • Reinicie o Nginx e você verá o IP do visitante em seu arquivo access.log

Se você estiver atrás do Cloudflare, verá o IP deles em vez do IP do cliente, então você também deve fazer o seguinte.

Obtendo o IP do cliente da Cloudflare

Cloudflare é um ótimo CDN e Provedor de segurança , e eu absolutamente amo isso. Se você estiver usando o Cloudflare como eu e quiser restaurar o IP do visitante no log do servidor da web, veja como fazer isso.

Supondo que você esteja logado no servidor Nginx

Faça um backup do arquivo de configuração do seu site (geralmente aqui – /etc/nginx/sites-available/yourdomain)

Adicione o seguinte no início do arquivo

 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: Você pode querer validar a lista de IP de seus Página Oficial .

Reinicie o Nginx e você deverá ver o IP do cliente agora. Isso tem me ajudado, e espero que você também.

A seguir, descubra como você pode implementar cabeçalhos seguros usando Cloudflare Workers .

Artigos relacionados