3 dicas de configuração para seu Nginx
Olá tudo bem por ai? Hoje vamos ver 3 dicas de configuração para seu Nginx que possivelmente vão te ajudar na hora de administrar sua aplicação e resolver seus problemas.
Bora?
Setar IP’s reais usando Cloudflare
Bom, se você usa CloudFlare o seu access.log do seu servidor Web Nginx está logando na variável $remote_addr o IP da Cloudflare e não o IP real do Cliente. Isso pode ser um problema levando em consideração que, na hora que você precisa investigar uma tentativa de acesso possívelmente você não vai encontrar o IP de origem da forma correta!
Bom para solucionar isso, no próprio site da CloudFlare existe uma configuração que você pode fazer no seu /etc/nginx.conf:
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 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;
Dessa forma seu Nginx vai logar a informação correta e na hora de analisar os logs do seu servidor Web você vai ter muito mais acertividade e facilidade para conseguir buscar, identificar e tomar uma ação relacionada a um IP específico.
Configurar cabeçalhos personalizados no Nginx
Bom, isso também é uma possibilidade! As vezes você precisar saber qual informação está passando pelo seu Nginx ou precisa identificar/personalizar algum cabeçalho e você pode fazer da seguinte maneira:
Dentro do arquivo de location das configurações de server { … } adicione:
Após adicionar a configuração você precisar dar uma reload/restart no seu servidor Web! Se você acessar sua aplicação vai conseguir ver usando o console do navegador, na parte de “Response Headers” as informações que você acrescentou:
Lembrando que você consegue usar variáveis do Nginx. Aqui vamos setar o IP de acesso no cabeçalho usando a variável $remote_addr:
Veja como ficou:
Setando IP real no PHP usando o arquivo fastcgi_params
Bom, lá no começo desse artigo vimos que podemos setar o IP real do cliente quando estamos usando CloudFlare mas as vezes isso não dá certo quando você usa um ProxyPass para sua aplicação PHP. Para ajustar isso, dentro de /etc/nginx existe um arquivo chamado fastcgi_params e lá você pode adicionar ou substituir a variável REMOTE_ADDR veja:
fastcgi_param REMOTE_ADDR $http_x_real_ip;
Dessa forma, se o seu Backend PHP captura o IP de quem está acessando, você vai poder passar para a sua aplicação o IP correto. =)