我有一个网络服务器。该服务器被授权调用另一个私人客户的 api 服务器
注意:该网络服务器位于我们办公室内部。我们的办公室位于 VPN 后面,因此只有 VPN 授权用户才能从外部访问网络服务器
仅出于开发目的,我们需要能够从其他未经授权的IP调用此服务器
我的一些想法是准备“一些东西”来接收来自任何地址的 api 调用并转发到客户的 api 服务器,并且显然,将来自 Web 服务器的响应回复到正确的 ip/客户端。
通信始终从我们的办公室开始,客户的 API 服务器从不调用我们。
我如何/什么可以安装一些东西,以允许同事对我的 IP、当然对自定义地址和域进行 api 调用,然后将每个请求透明地路由到客户的 api?
例子:
家里的 Ugo 有 ip 3.3.3.3,需要对 10.10.10.10 进行 api 调用 Stefano 需要从 ip 4.4.4.4 调用 10.10.10.10
但只有 1.1.1.1 有权呼叫 10.10.10.10。
我们想在 1.1.1.1 上安装一些东西,以便每个 ip 呼叫 ip 都会将呼叫转发到 10.10.10.10。
有这样的东西存在吗?我们可以在 linux/windows/其他一切上做到这一点
抱歉,我的问题很困惑,我是一名程序员,而不是网络工程师或任何其他工程师。
这几乎正是“反向代理”的作用。您可能已经将反向代理作为 Web 服务器设置的一部分,或者您可以配置 Nginx 或 Apache 来完成这项工作 - 听起来不需要任何特殊配置,只需要最基本的“ProxyPass”。
然而,您当前拥有的 IP 限制是有原因的 – 您甚至可能有合同义务来防止外部人员滥用您已被授予的访问权限。因此,恕我直言,您应该在代理设置中添加一些身份验证(例如 Apache 的“AuthType Basic”或至少“需要 ip <stefano_ip>”),否则有人可能会发现开放 API 端点,而其他私人客户可能会完全撤销您的访问权限。
或者,也可以使用“转发”HTTP 或 SOCKS 代理(也称为“常规”类型的代理,例如 Squid 或 Apache),尽管调用者有必要显式使用该代理,这可能会很烦人在某些 HTTP API 中(而反向代理看起来就像普通的 Web 服务器)。
如果允许开发人员通过 SSH 直接连接到 Web 服务器,他们可以在 SSH 客户端(例如选项
ssh -D
)中配置隧道,允许他们使用服务器的 IP 地址连接到任何他们想要的东西。(最后,为了进一步概括,可以设置 VPN 供开发人员使用......但在产品 Web 服务器上这样做可能不是一个好主意 - 我只是将其作为最通用的方法提及“借用另一个 IP 地址”。)