내가 전화하는 서버 대신 사용자 isp를 전달하세요.

내가 전화하는 서버 대신 사용자 isp를 전달하세요.

나는 axios와 함께 노드 익스프레스 서버를 사용하고 있으며 요청을 프록시하기 위해 백엔드에 대한 API 호출을 요청하고 있지만 서버 대신 사용자 세부 정보를 보내고 싶습니다.

예를 들어:

내 웹 사이트 -> 사용자가 사진을 클릭합니다. -> get이 내 서버 A로 호출됩니다. -> 서버가 데이터를 검색하기 위해 다른 서버 B를 호출합니다.

이제 B 서버는 ip, geo, isp 등과 같은 A의 서버 정보를 볼 수 있습니다. B 서버가 사용자가 웹 사이트에서 직접 이 서버를 호출했다고 생각하도록 사용자 데이터를 A 서버로 전달하려면 어떻게 해야 합니까?

답변1

글쎄, "geo"와 "isp"를 언급하는 많은 정보가 모두 IP 주소 자체에서 파생된다는 것을 이해하는 것이 첫 번째 열쇠입니다. 그래서 당신이 하려는 것은 그것을 전달하는 것입니다.

설정에 대한 많은 정보를 포함하지 않았지만 두 가지 가능한 설정을 포함했습니다.

1. 역방향 프록시

서버 A는 다음을 사용하여 서버 B에 대한 모든 요청을 프록시하는 역방향 프록시입니다 nginx. 이 경우 다음을 사용합니다.Forwarded header 매우 잘 설명된 것을 사용합니다.여기.

예제 코드 조각:

  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. 애플리케이션 계층 서버 A는 백엔드에서 서버 B로 요청을 보내는 웹 사이트(또는 기타 애플리케이션)를 호스팅합니다.

이 경우 애플리케이션의 정확한 작동을 알지 못한 채 어떻게든 요청 페이로드에 방문자 IP를 포함시키는 것이 좋습니다.

기본 예, 서버 A에서 PHP를 사용하고 있는 경우(이 양식은 서버 B로 전달되기 전에 서버 A로 제출되었습니다): <input type="hidden" id="visitorIP" name="visitorIP" value="<?php $_SERVER['REMOTE_ADDR']?>">

관련 정보