转发用户 ISP,而不是我拨打电话的服务器

转发用户 ISP,而不是我拨打电话的服务器

我正在使用带有 axios 的 Node Express 服务器并请求后端的 api 调用来代理请求,但我想发送用户详细信息而不是服务器。

例如:

我的网站->用户点击图片->获取被调用到我的服务器 A->服务器调用另一个服务器 B 来检索数据。

现在 B 服务器将看到 A 服务器的信息,例如 ip、geo、isp 等。我如何将此类用户数据转发到 A 服务器,以便 B 服务器认为用户直接从网站调用了该服务器?

答案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']?>">

相关内容