负载均衡之---应用请求路由模块的使用(ARR)(五)[配置ARR方式的三层部署体系]

配置ARR方式的三层部署体系

 

概览

本篇文章指导你用ARR来配置部署三层结构。三层部署体系需要由Web层、应用程序层和数据层组成,如下图:

http://learn.iis.net/file.axd?i=1042

 

一般在这种部署场景中,静态内容是由Tier1层的服务器host的,而动态内容是由Tier2层来host的。

 

先决条件

本演示需要以下几个先决条件:

装有IIS7Win2008,或者更高版本

Microsoft Application Request Routing和相关联的模块

至少2台部署有工作站点和应用程序的内容服务器

ARR服务其上,静态内容必须是能访问的

 

 

步骤1 – 为静态内容更改相应的URL Rewrite规则

在本步骤中,URL rewrite规则会根据静态内容的扩展名的不同来作出筛选。能够根据文件扩展名来辨认出是否为静态内容,如.jpg或者.gif。如果静态文件是放在某个目录中的,比如/images/目录,则URL rewrite规则也能根据目录名来进行筛选。

 

在本演示中,我们会设置URL Rewrite规则根据扩展名.jpg/.css以及目录/images/来筛选。如果所请求的资源扩展名是.jpg或者.css,则这个请求会直接由ARR服务器处理掉(不转发到内容服务器)。类似的,如果请求的资源包含/images/路径,也是这样处理。而所有其它的请求则会被ARR服务器转发给各个内容服务器来处理。

 

在继续之前,确保静态内容在ARR服务器上是能够被访问得到的。这些静态内容既可以是ARR服务器本地的,也可以是由共享目录实现的。

 

通过图形界面更改URL Rewrite规则:

1.       打开IIS管理器

2.       打开农场myServerFarm(前几篇文章中创建的一个农场名称)

3.       显示如下:

a)         http://learn.iis.net/file.axd?i=1199

4.       双击Routing Rules

a)         Requests with following extensions are not forwarded中输入*.jpg, *.css(逗号分隔开多个)

b)         Requests with following patterns are not forwarded中输入*/images/*

c)         http://learn.iis.net/file.axd?i=1206

5.       要确认静态图片已经被ARR服务器处理了,可以查看日志文件。日志文件默认的位置是c:\inetpub\logs\LogFiles\。在日志文件中能看到这些jpg, css, images没有被内容服务器处理。

 

 

 

命令行方式更改URL rewrite规则:

1.       administrator身份打开命令行

2.       导航到目录%windir%\system32\inetsrv

3.       输入下列命令清除所有URL Rewrite规则:

a)         appcmd.exe clear config -section:system.webServer/rewrite/globalRules

b)         接着更改规则来把请求这些扩展名*.jpg, *.css以及路径/images/的资源不转发到内容服务器:

                         i.              appcmd.exe set config -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True']" /commit:apphost

                       ii.              appcmd.exe set config -section:system.webServer/rewrite/globalRules /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].match.url:"*" /commit:apphost

                      iii.              appcmd.exe set config -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].conditions.[input='EXT_{URL}',negate='True',pattern='*.jpg']" /commit:apphost

                      iv.              appcmd.exe set config -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].conditions.[input='EXT_{URL}',negate='True',pattern='*.css']" /commit:apphost

                       v.              appcmd.exe set config -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].conditions.[input='{URL}',negate='True',pattern='*/images/*']" /commit:apphost

                      vi.              appcmd.exe set config -section:system.webServer/rewrite/globalRules /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].action.type:"Rewrite" /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].action.url:"http://myServerFarm1/{R:0}" /commit:apphost

posted @ 2011-04-12 20:23  McKay  阅读(1609)  评论(0编辑  收藏  举报