Estou querendo definir corretamente o X-Real-IP para domínios com proxy por nginx que também ficam atrás de um Amazon ELB.
ou seja
AMAZON ELB <=> NGINX PROXY <=> REST APP1
<=> REST APP2
Até agora, descobri que o seguinte funciona corretamente e evita a falsificação do IP. Eu tenho isso definido globalmente em nginx.conf
real_ip_header X-Forwarded-For;
set_real_ip_from 10.0.0.0/8;
real_ip_recursive on;
No entanto, também tenho alguns aplicativos REST que ficam atrás do NGINX
Meus aplicativos de descanso usarão o x-real-ip se definido ou x-forwarded-for. Em uso normal, o IP real do cliente está correto.
Sob um ataque de IP falsificado em que um ou ambos os cabeçalhos x-real-ip e x-forwarded-for são definidos, vejo o IP falsificado no cliente REST. No entanto, o nginx mostra o IP do cliente correto.
Atualmente no host de domínio que defini
proxy_pass_request_headers ativado;
Como definir o x-real-ip para ser o IP confiável real para os aplicativos REST?
Presumo que preciso de uma proxy_set_header
linha com o X-Real-IP. Mas como faço referência ao que o cabeçalho real-ip é definido pelo módulo real-ip?
Eu encontrei a resposta.
Eu estava tentando definir as seguintes diretivas que encontrei na web. Mas não parecia funcionar.
Depois de algumas brincadeiras, pensei em tentar colocá-los em um bloco de localização. Eu tentei colocá-los na seção html e também na seção do servidor. No entanto, se você colocar o acima no bloco de localização como abaixo, ele funcionará. por exemplo