2个不同的服务器监听相同的端口和相同的公共IP

网络工程 路由 dns
2022-02-05 15:20:24

我正在运行 2 个 VM,它们都在监听端口 80/443。我只有一个公共 IP 和几个指向我的公共 IP 的子域。我希望能够以某种方式访问​​端口 80/443 上的两个虚拟机。

我想到的场景是以某种方式涉及第三个虚拟机,它将接收来自外部世界的 80/443 请求并将它们相应地重定向到虚拟机。第三个虚拟机可以充当“代理”,它将使用不涉及端口的本地 IP 在虚拟机上发出请求。我不太确定这是否可能,但我愿意接受任何建议。

图表

1个回答

您无法在端口转发、反向 NAT 的基础上解决此问题。您将需要一个反向代理来终止 HTTP/S 连接并使用后端服务器根据请求的 URL 为请求提供服务。想到了 Squid 和 nginx,但我担心代理在这里是题外话。

或者,您需要多个“路由”公共 IP 地址。

请注意,路由器不会通过 DNS 服务器进行转发。当使用 DNS 名称转发外部端口时,DNS 服务器用于学习服务器的 IP 地址,然后路由器直接转发数据包。