在使用WFF的不同服务器上允许不同的标头

我们已经使用Microsoft的Web Farm Framework在集群中configuration了多个Web服务器。 我喜欢帮助debugging的一件事是在IIS中创build一个标头,标识处理请求的服务器。 不幸的是,当我尝试这样做时,WFF在所有服务器上将标题设置为相同的值。 有没有解决的办法?

我试图寻找使用skipDirectives,但我找不到任何文档(除了一点点显示如何使用它跳过目录和绑定)。

如果有这方面的文档,请链接到它! 我希望能够阅读更多的信息,以防我需要做其他事情。

布赖恩

如何完成这个任务的一个例子是使用URL Rewrite在主Web服务器节点上创build一个响应头,该头添加一个带有{SERVER_ADDR}服务器variables的新头。 使用服务器variables可以使规则尽可能通用,这样就不需要WFF跳过configuration文件的任何部分。

这种types的响应头的web.config项是:

  <outboundRules> <rule name="Add Server Node to Response"> <match serverVariable="RESPONSE_Node" pattern="(.*)" /> <action type="Rewrite" value="{SERVER_ADDR}" /> </rule> </outboundRules> 

这个规则将把Web服务器的IP地址放在一个名为Node的响应头中。 这可能会导致一些信息泄露,您可能不会披露。 因此,您还可以使用重写映射将不同的服务器IP映射到唯一标识它们的名称,如“Node1”。

你可以在http://www.iis.net/learn/extensions/url-rewrite-module/modifying-http-response-headersfind关于设置响应头的更多信息&#x3002;

编辑:

要执行SERVER_ADDR服务器variables到您提供的名称的映射,您可以在web.config中执行以下操作:

  <rewrite> <outboundRules> <rule name="Add Server Node to Response"> <match serverVariable="RESPONSE_Node" pattern="(.*)" /> <action type="Rewrite" value="{NodeMappings:{SERVER_ADDR}}" /> </rule> </outboundRules> <rewriteMaps> <rewriteMap name="NodeMappings"> <add key="10.0.0.1" value="Node1" /> <add key="10.0.0.2" value="Node2" /> </rewriteMap> </rewriteMaps> </rewrite> 

请记住,每次节点IP更改或节点添加到服务器场时,都需要更新本节。