IIS URL将域重写为多个VM中的一个

时间:2016-04-07 08:36:48

标签: url iis rewrite rules

我有一台运行多个虚拟机的服务器。每个VM都运行IIS 8.0并托管各种不同的站点。基本服务器也运行IIS 8.0,我打算根据HTTP_HOST将请求定向到其中一个VM。

我正在尝试定义入站和出站规则以实现以下目标:

www.mydomain1.com requests are directed to VM 192.168.1.10/mydomain1

www.mydomain2.com requests are directed to VM 192.168.1.10/mydomain2

www.mydomain3.com requests are directed to VM 192.168.1.11/mydomain3 

www.mydomain4.com requests are directed to VM 192.168.1.11/mydomain4

我想要的是让用户一直看到www.mydomainx.com,而内部虚拟机无缝地提供页面而不更改URL。我花了好几个小时尝试了我能想到的每一个组合,并阅读了几十篇文章,但似乎都没有涵盖这一特定情况。

我有子域名到文件夹工作(mysub.mydomain.com - > 192.168.1.10/mysub但不是完整的域名。

感激地收到任何建议。

1 个答案:

答案 0 :(得分:0)

经过大量的搜索和测试,我终于找到了解决方案。以下说明涉及IIS 8.5。

  1. 安装IIS的应用程序请求路由扩展
  2. 为IIS安装URL Rewrite 2.0
  3. 重新启动IIS管理器,您应该会看到一个名为Server Farms的新节点
  4. 对于托管网站的每台虚拟机,创建一个服务器场,然后将该VM的IP地址添加为该服务器场中的服务器。在我的设置中,每个服务器场只有一个VM。
  5. 在自己的服务器场中设置所有VM后,在IIS中选择根服务器节点,然后双击URL Rewrite
  6. 为每个VM创建所有正在处理的域的规则。

    • 添加新的空白规则
    • 添加适当的名称并将模式设置为。* - 所有匹配的正则表达式
    • 在“条件”部分中,单击“添加”
    • 将条件输入设为{SERVER_NAME}
    • 确保输入字符串下拉列表设置为匹配模式
    • 将模式设置为^(www。)?yourdomain.com $ - 正确设置域名并单击“确定”
    • 为将由VM处理的每个域名添加条件
    • 在“操作”部分中,将“操作类型”设置为“路由到服务器场”
    • 在“操作”属性中,选择将处理这些域的服务器场
    • 点击“应用”
  7. 现在,您只需设置路由器,将端口80上的请求移植到基础IIS服务器,然后根据域名将流量路由到相应的虚拟机。

    我有四台虚拟机以这种方式设置路由是无缝的并且运行良好。