Movendo uma solicitação para meu servidor nginx interno, adiciono à chamada:
proxy_set_header X-Real-IP $remote_addr;
quando tento imprimir esse valor no log do nginx interno o container trava:
log_format verbose ' Real: $X-Real-IP ';
O que estou fazendo de errado? (Eu também tentei com "" em torno da variável, mas não ajudou.)
Responder1
O servidor recebe X-Real-IP
como um dos cabeçalhos da solicitação HTTP. O Nginx disponibiliza cada um dos valores do cabeçalho da solicitação como uma variável.
O nome da variável para valores de cabeçalho de solicitação http começa com $http_
. O nome do cabeçalho é convertido em letras minúsculas e cada hífen é substituído por um sublinhado.
Por exemplo, X-Real-IP
está disponível como$http_x_real_ip
Veresse documentopara detalhes.
Responder2
Pode-se usar ngx_http_realip_module
para fazer o nginx usar o endereço IP nos cabeçalhos como o IP de origem em qualquer lugar dentro do nginx.
Está configurado da seguinte forma:
set_real_ip_from 192.168.1.1 # IP address of the external nginx
real_ip_header X-Real-IP;
Ao usar este módulo, não há necessidade de definir formatos de log próprios, o nginx gera o IP real do cliente em arquivos de log e todos os outros locais como o endereço IP de origem.