【问题标题】:How can you send HTTP request through one server to another?如何通过一台服务器向另一台服务器发送 HTTP 请求?
【发布时间】:2018-08-22 08:50:32
【问题描述】:

我正在做一个项目,遇到了一个有趣的问题。我的网络上运行了许多不同的计算机,它们没有我需要从中发出 http 请求的公共 IP。我确实有一台服务器,我一直将其用作可以通过 WAN 访问的路由器。通过java转发http请求并处理响应的最佳方式是什么?感谢您提前提供任何帮助。

【问题讨论】:

标签: java http networking


【解决方案1】:

正如其他人所提到的,这可能是题外话,但为了简短起见,您需要一个代理。在这种情况下是反向代理(从“外部”到“内部”)。

您的终端计算机没有公共 IP,而是私有 IP,因此无法从互联网访问它们,因为私有 IP 没有通过互联网路由。 因此,您将需要一台具有您所拥有的公共 IP 的设备。 在此服务器上使用反向代理,可以是 haproxy、nginx 或 Java,如果它存在(或者如果你想制作它)。

步骤很简单: _ 监听 80 端口和外部接口上的连接 _ DNAT(目标 NAT)这些连接并将它们发送到计算机 _ 您的代理将有一个会话表来跟踪这些连接。 _ 在您的工作站上,您将需要一个默认网关:这将是您的代理,因为工作站需要知道将数据包发送到哪里(随机公共 IP)。 _ 当然我们假设工作站和代理在同一个网络子网上。如果没有,您将需要另一个路由器来路由您 LAN 区域中的流量。

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    • 1970-01-01
    • 2015-06-25
    相关资源
    最近更新 更多