pasar la dirección IP real de una instancia de nginx a otra y escribirla en los registros

pasar la dirección IP real de una instancia de nginx a otra y escribirla en los registros

Al mover una solicitud a mi servidor nginx interno, agrego a la llamada:

proxy_set_header X-Real-IP $remote_addr;

cuando intento imprimir este valor en el registro, el nginx interno el contenedor falla:

log_format verbose ' Real: $X-Real-IP ';

¿Qué estoy haciendo mal? (También probé con "" alrededor de la variable, no ayudó).

Respuesta1

El servidor recibe X-Real-IPuno de los encabezados de la solicitud HTTP. Nginx hace que cada uno de los valores del encabezado de la solicitud esté disponible como una variable.

El nombre de la variable para los valores del encabezado de solicitud http comienza con $http_. El nombre del encabezado se convierte a minúsculas y cada guión se reemplaza por un guión bajo.

Por ejemplo, X-Real-IPestá disponible como$http_x_real_ip

Vereste documentopara detalles.

Respuesta2

Se puede usar ngx_http_realip_modulepara hacer que nginx use la dirección IP en los encabezados como la IP de origen en todas partes dentro de nginx.

Está configurado de la siguiente manera:

set_real_ip_from 192.168.1.1 # IP address of the external nginx
real_ip_header X-Real-IP;

Al utilizar este módulo, no es necesario definir formatos de registro propios, nginx genera la IP real del cliente en archivos de registro y en todos los demás lugares como la dirección IP de origen.

información relacionada