Nginx não obtém o IP do visitante real no bloco do servidor

1

Estou usando um balanceador de carga na minha configuração atual, as solicitações vêm de ip 10.71.128.13 .

Estou usando o Nginx como uma fachada para um back-end do Gunicorn. Eu quero obter o endereço IP real do visitante e registrá-lo (não o IP do balanceador de carga).

Meu nginx.conf:

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

# GET REAL IP
set_real_ip_from   10.71.128.12;
set_real_ip_from   10.71.128.13;
set_real_ip_from   10.71.128.14;
real_ip_header     X-Forwarded-For;

Meu bloco de servidores 'example.conf'

# HTTPS
server {

   etc....

location / {

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_set_header X-Forwarded-Proto https;

    proxy_set_header Host $http_host;

    proxy_redirect off;

    proxy_buffering on;
}
}

Uma entrada de registro de exemplo:

10.71.128.13 - - [10/Jun/2014:13:27:58 +0100] "POST /example/ HTTP/1.1" 200 25 "https://example.com/" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36"

Infelizmente, esta configuração apenas retorna o IP do balanceamento de carga e não o endereço IP do visitante ... Alguém pode ajudar?

Obrigado

    
por Daniel Pilch 10.06.2014 / 14:30

1 resposta

0

Quando você tem balanceamento de carga de passagem SSL, o proxy não pode adicionar os cabeçalhos necessários para que você nunca saiba o IP de origem

    
por 30.03.2016 / 01:46