Estou usando o servidor node express com axios e solicito as chamadas de API para meu back-end para fazer proxy das solicitações, mas gostaria de enviar os detalhes dos usuários em vez dos servidores.
Por exemplo:
Meu site -> o usuário clica na imagem -> get está sendo chamado para meu servidor A -> o servidor chama outro servidor B para recuperar dados.
Agora o servidor B verá as informações dos servidores A, como ip, geo, isp etc. Como encaminho dados de usuários como esses para o servidor A para que o servidor B pense que o usuário ligou para esse servidor diretamente do site?
Responder1
Bem, a primeira coisa a fazer é entender que muitas das informações às quais você se refere "geo" e "isp" são todas derivadas do próprio endereço IP; então o que você está procurando fazer é encaminhar isso.
Você não incluiu muitas informações sobre sua configuração, mas incluí duas configurações possíveis.
1. Proxy reverso
O Servidor A é um proxy reverso, que faz proxy de todas as solicitações para o Servidor B usando nginx
- se for esse o caso, então usaríamos Forwarded header
o que está muito bem descritoaqui.
Exemplo de trecho de código:
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. Camada de Aplicação O Servidor A hospeda um site (ou outro aplicativo) que envia uma solicitação no backend para o Servidor B.
Nesse caso, sem saber o funcionamento exato do aplicativo - sugiro que você inclua de alguma forma o IP dos visitantes na carga útil da solicitação.
Exemplo básico, se você estivesse usando PHP no Servidor A (e este formulário foi enviado ao Servidor A antes de ser passado para o Servidor B):
<input type="hidden" id="visitorIP" name="visitorIP" value="<?php $_SERVER['REMOTE_ADDR']?>">