No Nginx, certifique-se de ter
proxy_set_header CF-Connecting-IP $http_CF_Connecting_IP
depois no Apache com mod_remoteip:
RemoteIPHeader CF-Connecting-IP
RemoteIPInternalProxy 127.0.0.1
Estou preso há dias tentando resolver esse problema, espero que alguém possa me ajudar com isso.
Eu tenho Nginx como um proxy reverso na frente do Apache . Eu consigo registrar os IPs reais dos clientes usando mod_rpaf
module ao usar Nginx + Apache somente sem CloudFlare . Decidi então adicionar CloudFlare ao meu servidor. Agora os IPs CloudFlare estão sendo exibidos em vez dos IPs dos clientes. Eu tenho o Nginx RealIP Module
instalado, eu tentei várias configurações mas não resolvi o problema. Em seguida, instalei o mod_cloudflare
, que deveria registrar os IPs dos clientes reais no Apache , conforme descrito em CloudFlare , mas isso também não resolveu o problema.
Primeiro, as configurações de trabalho do Nginx + Apache são as seguintes:
Configuração do Nginx:
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
real_ip_header X-Client-IP;
mod_rpaf Configuração:
LoadModule rpaf_module /usr/local/apache/modules/mod_rpaf-2.0.so
<IfModule mod_rpaf-2.0.c>
RPAFenable On
RPAFproxy_ips 127.0.0.1 #Proxy IPs
RPAFsethostname On
RPAFheader X-Client-IP
</IfModule>
Até agora, os IPs reais dos clientes são exibidos corretamente.
If anyone looking for logging real clients' IPs, you can use the above configurations.
Em segundo lugar, usando CloudFlare com Nginx + Apache:
Configuração do Nginx:
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
set_real_ip_from 204.93.240.0/24;
set_real_ip_from 204.93.177.0/24;
set_real_ip_from 199.27.128.0/21;
set_real_ip_from 173.245.48.0/20;
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 141.101.64.0/18;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 104.16.0.0/12;
set_real_ip_from 172.64.0.0/13;
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;
real_ip_header CF-Connecting-IP;
mod_rpaf Configuração:
LoadModule rpaf_module /usr/local/apache/modules/mod_rpaf-2.0.so
<IfModule mod_rpaf-2.0.c>
RPAFenable On
RPAFproxy_ips 127.0.0.1 #Proxy IPs
RPAFsethostname On
RPAFheader CF-Connecting-IP
</IfModule>
Então, ao usar CloudFlare com as configurações acima, os IPs que estão sendo registrados pertencem a CloudFlare apesar das configurações feitas.
Eu tentei as seguintes combinações nas configurações Nginx e mod_rpaf
, mas não houve sorte
#Nginx
real_ip_header X-Client-IP;
real_ip_header X-Forwarded-For;
real_ip_header X-Real-IP;
#mod_rpaf
RPAFheader X-Client-IP
RPAFheader X-Forwarded-For
RPAFheader X-Real-IP
Inseri a configuração real_ip_recursive on;
in Nginx . Além disso, inserimos todos os intervalos de IP CloudFlare na configuração mod_rpaf
em uma tentativa independente. No entanto, tudo isso não resolveu o problema.
Qualquer resposta ou comentário é muito apreciado. Obrigado.
No Nginx, certifique-se de ter
proxy_set_header CF-Connecting-IP $http_CF_Connecting_IP
depois no Apache com mod_remoteip:
RemoteIPHeader CF-Connecting-IP
RemoteIPInternalProxy 127.0.0.1
Tags nginx apache-2.4 cloudflare