IIS URL将域重写为多个VM之一

IIS URL将域重写为多个VM之一,url,iis,rewrite,rules,Url,Iis,Rewrite,Rules,我有一个运行多个虚拟机的服务器。每个虚拟机都运行IIS 8.0并托管各种不同的站点。基本服务器也在运行IIS 8.0,我打算它根据HTTP_主机将请求定向到其中一个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

我有一个运行多个虚拟机的服务器。每个虚拟机都运行IIS 8.0并托管各种不同的站点。基本服务器也在运行IIS 8.0,我打算它根据HTTP_主机将请求定向到其中一个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,但没有完整的域名


非常感谢您的建议。

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

  • 为IIS安装应用程序请求路由扩展
  • 为IIS安装URL重写2.0
  • 重新启动IIS管理器,您将看到一个名为服务器场的新节点
  • 对于承载网站的每个虚拟机,创建一个服务器场,然后将VM的IP地址添加为该服务器场中的服务器。在我的设置中,每个服务器场有一个VM
  • 在自己的服务器场中设置好所有VM后,在IIS中选择根服务器节点并双击URL重写
  • 对于每个VM,为正在处理的所有域创建规则

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


    我有四个这样设置的虚拟机,路由是无缝的,工作非常好。

    您需要IIS的ARR。我已经安装了IIS的ARR,以及URL重写模块。现在的问题是如何配置它以实现所需的结果。当您从IIS.net下载它时,您应该在那里找到文档。帮助文件也是我的包括在安装中。