A descrição da Wikipedia do cabeçalho HTTP X-Forwarded-For
é:
Encaminhado para X: cliente1, proxy1, proxy2, ...
A documentação nginx para a diretiva real_ip_header
diz, em parte:
Esta diretiva define o nome do cabeçalho usado para transferir o endereço IP de substituição.
No caso de X-Forwarded-For, este módulo usa o último ip no cabeçalho X-Forwarded-For para substituição. [Ênfase minha]
Essas duas descrições parecem estar em desacordo. Em nosso cenário, o X-Forwarded-For
cabeçalho é exatamente como descrito - o endereço IP "real" do cliente é a entrada mais à esquerda. Da mesma forma, o comportamento do nginx é usar o valor mais à direita - que, obviamente, é apenas um de nossos servidores proxy.
Meu entendimento X-Real-IP
é que ele deve ser usado para determinar o endereço IP real do cliente - não o proxy. Estou faltando alguma coisa, ou isso é um bug no nginx?
E, além disso, alguém tem alguma sugestão de como fazer com que o X-Real-IP
cabeçalho exiba o valor mais à esquerda , conforme indicado pela definição de X-Forwarded-For
?