Leiten Sie den Benutzer-ISP weiter, anstatt die Server, von denen ich anrufe

Leiten Sie den Benutzer-ISP weiter, anstatt die Server, von denen ich anrufe

Ich verwende einen Node-Express-Server mit Axios und fordere die API-Aufrufe für mein Back-End an, um die Anfragen weiterzuleiten, aber ich möchte die Benutzerdetails statt der Server senden.

Zum Beispiel:

Meine Website -> Benutzer klickt auf das Bild -> get wird von meinem Server A aufgerufen -> Server ruft einen anderen Server B auf, um Daten abzurufen.

Jetzt sieht der B-Server die Informationen des A-Servers, wie IP, Geo, ISP usw. Wie leite ich solche Benutzerdaten an den A-Server weiter, damit der B-Server denkt, der Benutzer hätte diesen Server direkt von der Website aus aufgerufen?

Antwort1

Der erste Schlüssel besteht darin, zu verstehen, dass viele der von Ihnen in Bezug auf „Geo“ und „ISP“ genannten Informationen alle von der IP-Adresse selbst abgeleitet sind. Sie möchten diese also weiterleiten.

Sie haben nicht viele Informationen zu Ihrem Setup angegeben, ich habe jedoch zwei mögliche Setups angegeben.

1. Reverse-Proxy

Server A ist ein Reverse-Proxy, der alle Anfragen an Server B weiterleitet nginx. In diesem Fall würden wir verwenden, Forwarded headerwas sehr gut beschrieben ist.Hier.

Beispiel-Codeausschnitt:

  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. Anwendungsschicht Server A hostet eine Website (oder eine andere Anwendung), die im Backend eine Anfrage an Server B sendet.

In diesem Fall würde ich Ihnen – ohne die genaue Funktionsweise der Anwendung zu kennen – vorschlagen, die IP-Adresse des Besuchers irgendwie in die Anforderungsnutzlast einzubeziehen.

Einfaches Beispiel, wenn Sie PHP auf Server A verwenden (und dieses Formular an Server A übermittelt wurde, bevor es an Server B weitergeleitet wurde): <input type="hidden" id="visitorIP" name="visitorIP" value="<?php $_SERVER['REMOTE_ADDR']?>">

verwandte Informationen