基于域名主机的IIS 7反向代理?

我将如何configurationIIS 7.0的ARR和URL重写来基于主机反向代理

例如:

http://website1.mydomain.com gets routed internally to internalserver\website1 http://website2.mydomain.com gets routed internally to internalserver2\website2 http://website3.mydomain.com gets routed internally to internalserver2 (default website) 

仅供参考 – 公共DNS网站1.mydomain.com和其他都实际上指向公共IP的mydomain.com。

请注意,这不是全部相同的服务器。 在防火墙内部有多个Web服务器,并且有一个普通的默认Web服务器,其端口80和443暴露在外。 我有一个IP地址和一个域名。 因此,由于我的防火墙内有多个Web服务器,我需要将主机名子域路由到内部的不同Web服务器。

任何详细的步骤将有极大的帮助。

既然你是依靠域名而不是IP(在这种情况下更容易),下面是最直接的方法:

  • 请确保您的外部服务器已根据主机标头(website1.mydomain.com等)绑定了3个站点。 您可以将IP地址保留为(全部未分配)。 你可能已经完成了。 – 基本上我的意思是添加绑定到第一个网站是“website1.mydomain.com”,并以类似的方式到其他两个网站。 这是一个关于绑定的演练 。

  • 在ARR服务器上创buildARR中的2个Web Farms。 一个到内部服务器,另一个到internalserver2。 使用这些服务器的主要IP地址。 你可以设置3个不同的Web Farms,如果你想每个网站的独特的健康检查。 没关系,他们两个指向同一台服务器。 – 步骤:创build一个名为InternalServer的新服务器场,并为其添加一台服务器,即“internalserver”。 然后创build另一个名为InternalServer2的服务器场,并为其添加“internalserver2”。

  • 在创build站点时向导的最后一步,当它询问您是否想要ARR为您创build一个规则时,只能在第一次说“是”。 注意它创build的规则,以便您可以从中学习。 然后删除它。 你想pipe理自己的规则。 – 我会在下一步解释规则。
  • 您应该在全局级别(IIS服务器节点,而不是网站节点)上设置3个URL重写规则。 URL =。*,为您的域名使用{HTTP_HOST}的条件,并且操作应该路由到相应的webfarm。 – 这是URL重写的介绍 。 遵循这些步骤并input如下所示的规则:

示例URL重写:

 <rule name="site1" patternSyntax="ECMAScript" stopProcessing="true"> <match url=".*" /> <conditions logicalGrouping="MatchAll"> <add input="{HTTP_HOST}" pattern="^website1\.mydomain\.com$" /> </conditions> <action type="Rewrite" url="http://InternalServer1/{R:0}" /> </rule> 

如果您使用的是SonicWALL,则可以这样做:

  1. 在WAN上创buildFQDNtypes的networking>地址对象。
  2. 添加networking> NAT策略将该地址对象转换为内部Web服务器。
  3. 在“防火墙>访问规则”下添加规则,以允许HTTPstream量进入每台服务器。

如果你使用不同的防火墙,看看你是否可以做类似的事情。

由于它全部位于同一台服务器上,为什么不创build三个绑定到指定子域的单独网站?