Você pode usar o nginx HttpRealipModule para filtrar acessos do Loadbalancer:
set_real_ip_from 192.168.0.1;
real_ip_header X-Cluster-Client-Ip;
Estou escrevendo uma configuração nginx que requer um proxy e preciso do endereço IP original. A variável $proxy_add_x_forwarded_for
do HttpProxyModule do Nginx parece perfeitamente adequada para a tarefa, exceto pelo fato do meu Nginx estar atrás de um saldo de carga que não define X-Forwarded-For
, mas X-Cluster-Client-Ip
.
Agora, uma possibilidade seria usar
set X-Forwarded-For $http_x_cluster_client_ip,$proxy_add_x_forwarded_for
mas algumas vezes são acessos diretos ao servidor, o que deixaria uma vírgula inicial no cabeçalho. Pensei em usar if
, mas esse cenário cai bem no meio dos casos em que if
é problemático para usar.
Observe que, como o cliente pode ter sido intermediado por proxy, eu quero preservar todos os dados presentes no cabeçalho X-Forwarded-For
, se existir, além para passar dados de X-Cluster-Client-Ip
.
Alguma alternativa?
Você pode usar o nginx HttpRealipModule para filtrar acessos do Loadbalancer:
set_real_ip_from 192.168.0.1;
real_ip_header X-Cluster-Client-Ip;
Tags nginx