我有一个带有 2 个 NIC 的 Linux 机器,它用作防火墙/路由器,其中红色 NIC 连接到公共静态 IP,绿色 NIC 连接到交换机,然后我有 3 个服务器连接到交换机,这些服务器运行具有桥接网络的多个 VM,因此它们具有 IP 租约,就好像它们是网络的“物理”组成部分一样。
我还注册了多个域名,比如 example1.com 和 example2.com,我想知道这是否可行,如果可以,该怎么做,根据域名将流量重定向到特定的内部 IP...所以说这两个域名由我的 DNS 提供商映射到我唯一的公共 IP,但我有多个服务器和服务我想映射到特定域...所以每当我收到域名为 example1.com 的请求时,我的路由器都会将该流量转发到它后面的内部服务器...
所以基本上我可以将多个域映射到一个公共 IP,但我有许多可以分配给该域的本地 IP
例如 192.168.1.101 example1.com 192.168.1.102 example2.com
我知道这种情况在 apache2 和虚拟主机中是可能的,因为 HTTP 标头包含域名,但我是否需要在防火墙上设置 DNS 才能将域名转换为内部 IP...基本上是 VPS 托管
答案1
如果您在路由器后面有一台服务器,它将托管多个主机名下的所有页面,那么基于名称的虚拟主机将按照您建议的方式为您工作。
由于您谈论的是不同的主机,并且主机通过 TCP/IP 而不是 HTTP 进行通信,因此这行不通。事实上,路由器或主机本身并不关心所提供的 HTTP/1.1 主机名
您可以设置一个反向代理,它将接收通过红区传入的所有请求,然后将请求分发到绿区中的应用服务器。
如果需要的话,您可以在 Reverseproxy 上执行 NameBased Vhosts。