如何使用相同的公共 IP 地址但不同的域名托管多个网站

如何使用相同的公共 IP 地址但不同的域名托管多个网站

我知道如何配置一个 IIS 实例来运行使用相同公共 IP 地址但不同域名的多个网站(只要我能控制域)。

但是,如何配置在同一网络中的不同虚拟机上运行的许多 IIS 服务器,以使用相同的公共 IP 地址但不同的域名托管网站?

通常在网站下的 IIS 中,您可以设置网站将响应的标头。但如果该网站位于不同的机器上怎么办?

编辑:

让我解释得更清楚一点。假设你只有一个公共 IP 地址,可以用来提供网站。你想在同一个 IP 地址下公开多个网站,但网站位于不同的物理机器上,在您的网络内。

答案1

您可以使用负载平衡器或 Microsoft 的网络负载平衡器 (NLB) 来执行此操作。

NLB 可以采用 1 个 IP 并在多个服务器上监听该 IP(根据您的网络,可能需要进行一些网络更改)。

但是,我建议使用负载平衡器方法。如果您使用的是 IIS7,请使用应用程序请求路由 (ARR)。它是 IIS 7 的一个小型附加组件,可用作反向代理。让 IP 位于您的“前端”节点上,它将充当反向代理来获取来自其他服务器的请求。其他服务器(前端节点也是如此)都需要有内部 IP。

答案2

  • 显然,将所有域名指向同一个 IP 地址

  • 在 IIS(哪个版本?)中设置多个网站。在绑定(将它们附加到 IP 地址的地方)中,您可以设置 HOST HEADER。在那里输入域。

这样,当请求地址 X 时,IIS 可以根据主机标头 (www.serverfault.com 等) 将它们分开。浏览器正是出于这个原因,将请求的域发送到名为“主机标头”的字段中的服务器。

参考:

http://support.microsoft.com/kb/308163

并且,有很多背景知识:

http://www.gafvert.info/iis/article/understanding_host_headers.htm

答案3

不过需要注意的是...如果其中任何一个是 SSL 保护的,这将导致问题,具体取决于您使用的代理。如果它所做的只是检查主机头并转发流量,它将无法工作,因为主机头是流量加密部分的一部分。

杰杰

相关内容