Reenviar IP real desde Nginx Proxy al servidor web PM2

Reenviar IP real desde Nginx Proxy al servidor web PM2

Tengo una API impulsada por una pila media y servida usando PM2. Expone un punto final HTTP enhttp://89.89.89.89:8080(IP de ejemplo): puedo acceder a esto directamente usando mi navegador.

Instalé Nginx y estoy usando la siguiente configuración para redirigir solicitudes a la API en el mismo servidor.

server {
        listen 8081;
        server_name example.com;

        location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header  X-Forwarded-Host $remote_addr;
        proxy_pass http://127.0.0.1:8080;
        }
}

Lo anterior funciona y puedo acceder a la API enhttp://89.89.89.89:8081(Puerto Nginx), sin embargo, las solicitudes al objetivo son de 127.0.0.1. Me gustaría reenviar la dirección IP del usuario real a PM2. He buscado y probado varias soluciones pero no puedo hacer que esto funcione.

Se agradece cualquier ayuda o sugerencia en la dirección correcta.

Respuesta1

necesitas tener nginx con módulo --with-http_realip_moduleo deberías poder hacerlo sin él.

Se ejecuta la comprobación si el módulo está presente nginx -v.

Sin el módulo, debe especificar lo siguiente en el formato de registro de configuración. EJEMPLO:

log_format  main  '$http_x_forwarded_for - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent"';

access_log  /var/log/nginx/access.log  main;

real_ip_header X-Forwarded-For;

Después de esto, reinicie nginx y verifique los registros.

Si el módulo está instalado, deberá modificar su configuración en consecuencia.

# Directives for setting real_ip/XFF IP address in log files
set_real_ip_from    192.168.101.10; #IP address of master LB
real_ip_header      X-Forwarded-For;

El módulo de ip real se utiliza para cambiar la dirección IP de origen del cliente al valor del encabezado. queríamos establecer la dirección IP real para el tráfico proveniente de un servidor con la dirección IP 192.168.101.10.

Nuevamente, después de los cambios se debe reiniciar el servicio nginx.

información relacionada