IIS负载均衡-Application Request Route详解第五篇:使用ARR来配置试点项目
IIS负载均衡-Application Request Route详解第五篇:使用ARR来配置试点项目
系列文章链接:
IIS负载均衡-Application Request Route详解第一篇: ARR介绍
IIS负载均衡-Application Request Route详解第二篇:创建与配置Server Farm
IIS负载均衡-Application Request Route详解第三篇:使用ARR进行Http请求的负载均衡(上)
IIS负载均衡-Application Request Route详解第三篇:使用ARR进行Http请求的负载均衡(下)
IIS负载均衡-Application Request Route详解第四篇:使用ARR实现三层部署架构
IIS负载均衡-Application Request Route详解第五篇
看到本篇的题目,大家可能感到有点奇怪!下面,我们就来看看这到底是什么意思。
大家可能遇到过这样的一种情况:希望根据某些请求用户的特性,将用户的请求导向不同的站点(请大家这里区分“亲缘性”的概念,这里不是“亲缘性”)。如果说,大家还不是很明确,那么我们就举个例子:如果发出请求的用户用的是IE浏览器,那么我们就将他们的请求发送到A服务器上的站点,如果用户用的是Firefox浏览器,那么我们就将请求转发到B服务器。
总结一句话:根据用户的特性来,按照我们的意愿来处理不同特性的请求。
我们完全可以把ARR的这个特性使用的更加灵活,例如,如果用户请求的是文件,那么,我们就像将其转发给文件服务器;再如,如果此时我们的站点是Beta版本的,我们所有的请求用服务器A来处理,等到以后站点稳定之后,我们就用服务器B上的站点来处理请求,等等。
正如之前一样,我们首先来准备一些环境,便于测试!
首先,希望使用IIS 7(及以上版本),并且安装ARR,大家可以参看之前的系列文章。
其次,准备好一台服务器(虚拟机也可以)。
再次,我们在服务器上部署两个站点:pilotSite和productionSite。
我们本次的目的就是:如果发送请求的客户端安装了.NET Framework 3.5 并且还是用的是IE浏览器,那么,我们就将请求发送给pilotSite,否则就发送给productionSite,并且两个不同的站点分别位于不同的两个Server Farm中(当然,我们可以在每个Farm中加入更多的站点)。
下面,我们就开始具体的操作。
1. 在IIS中部署两个站点(我们分别将其部署在不同的端口,如果愿意,大家完全可以将其分别放在两台不同的服务器上)如下图:
2. 创建两个Server Farm,分别名为:pilotSiteServers,和productionSiteServers,如下:
3. 选中pilotSiteServers,然后双击“Routing Rules”,得到如下图:
因为这里需要涉及到了使用多个Server Farm来匹配不同的请求,所以,需要配置与URL Rewrite。
4. 点击了“URL Rewrite…”之后,看到如下的界面:
我们可以看到,现在已经有了两条URL Rewrite规则,因为此时,我们需要根据特定的用户信息来转发请求,所以,我们要修改默认的规则:
a. 我们要确保“ARR_pilotSiteServers_loadbalance”在上面,而“ARR_productionSiteServers_loadbalance”在下面,如果不是,可以点击“Move Up”和“Move Down”来调整,如下:
b. 选择“ARR_pilotSiteServers_loadbalance”,然后点击“Edit”开始编辑。此时看到的界面如下:
c. 按照我们之前的需求:客户端安装了.NET 3.5 并且使用IE浏览器的请求都被转发给pilotSiteServers来处理,所以,我们开始添加我们的一些过滤的规则,点击“Add Conditions”,然后点击“Add…”,如下图:
添加“{HTTP_USER_AGENT}”,然后在Pattern添加“*MSIE*”,如图:
然后,我们在添加另外一个规则(.NET 3.5的那个),操作和上面的类似,如图:
添加完了两个过滤规则之后,然后不勾选 “Stop processing of subsequent rules”,然后点击“Apply”,如图:
到这里就可以运行站点了。
建议大家将两个站点部署在不同的服务器上面,因为我在测试的过程中发现:将两个放在一台服务器上面,总是报错,分开就好了