Configurando o nginx para registrar o IP do solicitante original (em vez do IP do proxy de encaminhamento)

3

Em um site compatível com nginx, alguns visitantes estão atrás de um determinado proxy de encaminhamento. Como as solicitações passam pelos servidores do proxy, o endereço IP da solicitação de HTTP nesses casos é sempre de servidores proxy e não do solicitante original.

No entanto, o proxy garante a inclusão do IP do solicitante original em um campo de cabeçalho HTTP separado chamado X-IORG-FBS-UIP. Também pode ser encontrado em X-FORWARDED-FOR.

Nos registros de acesso nginx, noto que o IP do proxy é o que aparece para todos esses usuários, não para o IP real. Como posso configurar o nginx de forma que o IP do solicitante original seja registrado por nginx e não pelo proxy? Um exemplo ilustrativo seria ótimo; obrigado antecipadamente!

p.s. meu nginx é v 1.4.6

    
por Hassan Baig 19.02.2017 / 15:45

1 resposta

4

Isso é feito usando set_real_ip_from para atualizar o $remote_addr variável baseada em um cabeçalho personalizado. Por exemplo, /etc/nginx/conf.d/proxies_acl.conf pode ser criado da seguinte maneira, para definir a variável IP do cliente com base no cabeçalho X-IORG-FBS-UIP para solicitações com proxy em 1.2.3.0/22 e 23.22.20.0/22 :

set_real_ip_from 1.2.3.0/22;
set_real_ip_from 23.22.20.0/22;
real_ip_header X-IORG-FBS-UIP;
    
por 19.02.2017 / 16:42