Estoy usando el servidor Node Express con axios y solicito las llamadas a la API para que mi back-end represente las solicitudes, pero me gustaría enviar los detalles de los usuarios en lugar de los servidores.
Por ejemplo:
Mi sitio web -> el usuario hace clic en la imagen -> se llama a get a mi servidor A -> el servidor llama a otro servidor B para recuperar datos.
Ahora el servidor B verá la información del servidor A, como ip, geo, isp, etc. ¿Cómo reenvío datos de los usuarios como ese al servidor A para que el servidor B piense que el usuario llamó a este servidor directamente desde el sitio web?
Respuesta1
Bueno, la primera clave es comprender que gran parte de la información a la que se refiere "geo" e "isp" se deriva de la dirección IP misma; entonces lo que estás buscando hacer es reenviar eso.
No ha incluido mucha información sobre su configuración, sin embargo, he incluido dos configuraciones posibles.
1. Proxy inverso
El servidor A es un proxy inverso, que envía todas las solicitudes al servidor B nginx
; si este es el caso, usaríamos Forwarded header
el que se describe muy bien.aquí.
Fragmento de código de ejemplo:
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://server_b;
}
2. Capa de aplicación El servidor A aloja un sitio web (u otra aplicación) que envía una solicitud en el servidor B.
En este caso, sin conocer el funcionamiento exacto de la aplicación, le sugeriría que incluya de alguna manera la IP de los visitantes en la carga útil de la solicitud.
Ejemplo básico, si estuviera usando PHP en el Servidor A (y este formulario se envió al Servidor A antes de pasarlo al Servidor B):
<input type="hidden" id="visitorIP" name="visitorIP" value="<?php $_SERVER['REMOTE_ADDR']?>">