可以在一个网络内的同一端口上运行多个网络服务器吗?

网络工程 路由器 ip 网络
2022-02-03 14:10:44

假设我们有一个网络 A,其中有两个网络服务器 S1 和 S2,它们都在端口 80 上托管一个网站。当来自不同网络的客户端寻址 A:80 时,网络 A 内的哪个主机会收到消息?

2个回答

在字里行间,您正在询问使用相同协议端口号并从公共网络联系的专用网络上的两台服务器。这需要 NAT(网络地址转换)的 NAPT(网络地址端口转换)变体。

NAPT 的一个限制是您只能将特定协议端口的流量转发到单个内部主机,或者使用循环方法,但这不会让外部人员选择服务器。

您的示例需要其中一台内部服务器使用不同的协议端口。这就是为什么拥有使用相同协议端口的多台服务器的企业获得(购买)多个公共地址的原因。

这是可能的,您只需要一台运行开源负载均衡器的 Linux 主机,例如。HAproxy/Ngnix 等

您可以启用流量以接受 Linux LB 上端口 80 上的连接,并将流量共享/负载平衡到内部服务器的端口可以是 80 或您的任何自定义应用程序端口。