我知道如何配置一个 IIS 实例以使用相同的公共 IP 地址运行多个网站,但使用不同的域名(只要我可以控制域)。
但是,如何配置多个运行在同一网络中不同虚拟机上的 IIS 服务器来托管使用相同公共 IP 地址但域名不同的网站?
Normailly 在网站下的 IIS 中,您可以设置网站将响应的标题。但是如果该网站在另一台机器上怎么办?
编辑:
让我解释得更好。假设您只有一个可用于提供网站的公共 IP 地址。您想在同一个 IP 地址下公开多个网站,但这些网站位于您网络内的不同物理机器上。
我知道如何配置一个 IIS 实例以使用相同的公共 IP 地址运行多个网站,但使用不同的域名(只要我可以控制域)。
但是,如何配置多个运行在同一网络中不同虚拟机上的 IIS 服务器来托管使用相同公共 IP 地址但域名不同的网站?
Normailly 在网站下的 IIS 中,您可以设置网站将响应的标题。但是如果该网站在另一台机器上怎么办?
编辑:
让我解释得更好。假设您只有一个可用于提供网站的公共 IP 地址。您想在同一个 IP 地址下公开多个网站,但这些网站位于您网络内的不同物理机器上。
显然,将所有域指向同一个 IP 地址
在 IIS(哪个版本?)中设置多个网站。在绑定(将它们附加到 IP 地址的位置)中,您可以设置 HOST HEADER。把域放在那里。
这样,当请求地址 X 时,IIS 可以根据主机标头(www.serverfault.com 等)将它们分开。正是出于这个原因,浏览器在名为“Host Header”的字段中将请求的域发送到服务器。
参考:
http://support.microsoft.com/kb/308163
而且,有很多背景:
http://www.gafvert.info/iis/article/understanding_host_headers.htm
您可以使用负载均衡器或 Microsoft 的网络负载均衡器 (NLB) 执行此操作。
NLB 可以使用 1 个 IP 并在多个服务器上侦听该 IP(根据您的网络,可能需要进行一些网络更改)。
但是,我推荐负载均衡器方法。如果您使用的是 IIS7,请使用应用程序请求路由 (ARR)。它是 IIS 7 的一个小插件,用作反向代理。让 IP 位于您的“前端”节点上,它将充当反向代理来获取来自其他服务器的请求。其他服务器(前端节点也是)都需要有内部 IP。
不过,请注意……如果其中任何一个受 SSL 保护,这将根据您使用的代理给您带来问题。如果它所做的只是检查主机标头并转发流量,它将无法正常工作,因为主机标头是流量加密部分的一部分。
贾