如何根据域名通过路由器路由请求?

如何根据域名通过路由器路由请求?

假设设置如下所示,是否可以将请求(例如 subdomain1.domain.com 路由到服务器 1、将 subdomain2.domain.com 路由到服务器 2、将另一个 seconddomain.com 路由到服务器 2 等等)而无需反向代理?

目标是托管多台服务器,每台服务器应由不同的人员自主访问和管理。由于其中大多数是测试环境,目标是能够通过不同的域名/子域名在所有端口上访问每台服务器。每次在其中一台机器上测试新服务时管理反向代理会非常麻烦,尤其是因为这些服务器不仅限于 HTTP/HTTPS Web 服务器,并且可以跨多个不同端口提供多种协议。

这样的设置可行吗?如何设置呢?

建议设置的示意图

答案1

您所要求的几乎是不可能的,因为绝大多数 L7 协议没有主机名的概念,因此无法基于主机名进行代理

实现您想要的目标的正确方法是分配不同的公共 IP 地址,因为即使您的图表中有一个路由器,但它实际上是 NATting,根本不是路由。

因此,您需要更多 IP 地址,您可以正确路由并将公共 IP 放在您的三台服务器上,或者,您可以将 IP 地址放在路由器上并进行 1:1 NAT(eww,特别是如果 NAT 使用代理 ARP 来“获取” IP)

答案2

最好的方法是通过服务器分配不同的 IP:

  • server1第一个公网IP
  • server2 第二个公网IP
  • server3 第三个公网IP

然后在 DNS 中为每个域分配不同的 IP。

如果您的 ISP 无法为您提供更多 IP 地址,那么您可以迁移到其他地方,或通过隧道将流量带到您的服务器。

相关内容