负载均衡之---应用请求路由模块的使用(ARR)
翻译原文Url:
http://learn.iis.net/page.aspx/489/using-the-application-request-routing-module/
介绍
Microsoft Application Request Routing (ARR) for IIS 7是一个基于代理的路由模块,它基于http头、server variables和负载均衡算法将http请求转发到各个内容服务器。ARR能用在以下情况下:
增进系统的有效性和可扩展性
更好的利用各个内容服务器的资源
简化系统部署,包括引导管理以及
- A/B测试
减少管理费用及为共享主机提供商提供更多的机会
ARR依赖URL Rewrite模块检查进站http请求以确定路由规则。而且,要使用ARR的话,URL Rewrite模块是必选的组件。
特点
Microsoft Application Request Routing for IIS 7包括下列主要特点:
l 基于HTTP的路由决策
n ARR不像硬件负载均衡所实现的那样在IP级别实现路由决策,ARR在应用层实现路由决策。当ARR与URL Rewrite模块一起使用时,能够写出很强的基于http头及server variables的路由规则。
l 负载均衡算法
n 能够自行选择负载均衡算法以支持什么样的http请求让哪台内容服务器提供服务。共提供了6种算法。
l 系统健康监控
n 同时提供了正式环境数据以及指定URL测试两种方式来监控内容服务器的健康状态。系统还提供了许多配置参数来支持健康状态的监控。你也能同时禁用这2种健康状态监控方式,进而选择自定义的监控状态提供程序。
l 客户端亲和
n 通过使用Cookie,ARR能够保持所有的请求始终如一的与某一台内容服务器对应上。ARR在NAT的后端区分这些请求,在那里会将各个请求独立区分开。这个特性需要客户端接受Cookie。
l 主机名亲和
n “主机名亲和”这个特性对于共享主机提供商来说是个比较有用的特性。这个特性通过改变部署结构来最小化及平滑化管理,并且创造额外的业务机会。有2种方式被用于决定内部服务器亲和性的算法,既:循环方式和内存方式。
l 多服务器组
n ARR能够管理多个由逻辑内容服务器组成的服务器组。这个特性允许ARR能够被用在引导管理和A/B测试场景中。
l 图形界面的管理和监控
n 你能使用IIS管理器来管理和查看所有的配置信息以及对ARR运行时的汇总统计。
l 失败请求的跟踪规则
n 特定的跟踪能够被快速的加入到排错及诊断任务中。
模块的获取
下载Microsoft Application Request Routing Version 2 for IIS 7 (x86)
下载Microsoft Application Request Routing Version 2 for IIS 7 (x64)
使用详解
以下这些文章描写了如何配置以及如何应用到核心场景:
· 安装ARR
· Define and Configure an Application Request Routing Server Group
· HTTP Load Balancing using Application Request Routing
· Includes using health monitoring and client affinity
· Configure 3-tier deployment architecture using Application Request Routing
· Pilot Program Management using Application Request Routing
· Shared Hosting using Application Request Routing
· Using Microsoft External Cache for IIS7
· How to configure WMI service on application servers for HostNameMemory affinity provider
· Using Failed Request Tracing Rules to Troubleshoot Application Request Routing
· High availability at ARR tier
· ARR and Hardware Load Balancer
目标
在IIS7上安装ARR v1以及依赖的模块。ARR安装包包含了下列组件:
l Microsoft URL Rewrite Module for IIS 7.0.
l Microsoft Web Farm Management Version 1 for IIS 7.0.
l Microsoft Application Request Routing Version 1 for IIS 7.0.
l Microsoft External Cache Version 1 for IIS 7.0.
在本文档中描写的步骤会安装这4个模块。
先决条件
本演练需要下列先决条件:
装有IIS7.0或者更新版本的Win2008
如果目标系统已经装有下列IIS7模块,则需要先卸载掉:
Microsoft URL Rewrite Module for IIS 7.0 CTP1.
Microsoft Application Request Routing for IIS 7.0 CTP1.
注意:
从CTP1更新到RTW版本是不被支持的。CTP1必须在继续之前被卸载掉(所有的配置信息会丢失掉)。
从RC更新到RTW是支持的。而且,RC版本的模块不需要卸载就能继续(配置信息也不会丢失)。
步骤1---下载Microsoft Application Request Routing Version 1
可以从以下2个地方下载相对应的版本(根据机器类型):
Microsoft Application Request Routing Version 1 for IIS 7 (x86) here.
Microsoft Application Request Routing Version 1 for IIS 7 (x64) here.
步骤2---安装Microsoft Application Request Routing Version 1
1. 以administrator身份打开命令行
2. 输入如下命令来停止WAS和WMSVC进程(执行这个是因为ARR会安装补丁KB 954438)。
a) net stop was /y
b) net stop wmsvc /y
3. 运行程序ARR_<x86/x64>_exe:
a) ARR_ x86_Version1.exe
b) 或者
c) ARR_ x64_Version1.exe
4. 接受最终用户许可协议(EULA)
5. 然后这4个组件会依次安装
6. 安装完成
7. 要想查看详细的安装日志,可以查看%TEMP%\arr_setup.log。如果安装都成功,你会看到下列信息:
a) Completed the Microsoft Application Request Routing for IIS7 RC Setup
b) Installation results - look in the respective msi log files (msiname.log) for more details
c) rewrite.msi Success
d) webfarm.msi Success
e) requestrouter.msi Success
f) externaldiskcache.msi Success
8. (可选资料)出于查错的目的,下载的可执行文件是能够被单独抽取出msi安装包的。可以使用参数/T:<full path>和/C来完成。这个命令只限于抽取这4个msi文件。如果这些模块打算用msi的方式手动安装,则必须以下列顺序安装:
a) rewrite.msi
b) webfarm.msi
c) requestrouter.msi
d) externaldiskcache.msi
e) 参数的更多详细信息,可以通过/?参数来查看
9. 输入以下命令来启动WAS和WMSVC进程
a) Net start was
b) Net start wmsvc
步骤3---为ARR改变应用程序池进程模型
所有对网站的http请求和回应都会经过ARR。出于这点,需要让ARR所在的Default Web Site对应的工作进程总是处于运行状态,无论其它的工作进程是否处于运行状态。
在这个步骤中,你将把Default Web Site的应用程序池进程模型的Idle Time-Out参数禁用。
更改应用程序池进程模型,如下所示:
1. 打开IIS管理器
2. 选中应用程序池
3. 默认情况下,DefaultAppPool是Default Web Site相应的应用程序池。选中DefaultAppPool,然后ActionàEditàApplication Pool, 选择Advanced Settings
4. 设置Idle Time-out(minutes)为0,点击OK按钮保存更改。
如果以命令行方式更改应用程序池进程模型,则采取如下方法:
1. 用administrator特权打开命令行
2. 导航到文件夹%windir%\system32\inetsrv
3. 使用appcmd命令,输入如下:
a) appcmd.exe set apppool "DefaultAppPool" -processModel.idleTimeout:"00:00:00" /commit:apphost
修复
修复ARR会牵涉到重新运行下载的软件安装包。按照步骤2重新安装。
卸载
想要完全卸载ARR模块,这4个模块需要按照先后顺序依次卸载:
1. Microsoft Application Request Rouitng Version 1 for IIS 7
2. Microsoft External Cache Version 1 for IIS 7
3. Microsoft URL Rewrite Module for IIS 7.0
4. Microsoft Web Farm Framework Version 1 for IIS 7
定义及配置ARR服务器组
概述
本篇将指导读者一步步在IIS7下定义及配置ARR服务器组。服务器农场实际是一个由应用服务器组成的逻辑组,是基于http请求和负载均衡算法管理之下的。
目标
基于ARR来定义及配置服务器农场,原理如下所示:
先决条件
本次演练需要下列这些模块:
l 装有IIS7的Windows 2008或者更新版本
l Microsoft Application Request Routing 和关联模块
l 至少由两台应用服务器组合的工作站点和应用程序
步骤1 – 创建一个基于ARR的服务器农场
创建和定义服务器农场,图形方式如下:
1. 打开IIS管理器
2. 选中并且展开服务器根(ARR是服务器级别的特性)
a)
3. 要创建服务器农场,右键单击Server Farms节点, 然后单击Create Server Farm菜单
a)
4. 输入服务器农场的名称。下图中, myServerFarm就是服务器农场的名称。然后单击Next按钮
a)
5. 下一步是将各个服务器加入到农场中。在Add Server界面中,根据需要添加各个服务器。点击Finish按钮完成添加操作(注意:在Advanced Options中可以自定义http和https的端口):
a)
6. 完成创建过程
以下是以命令行方式创建及定义服务器农场的步骤:
1. 以administrator身份打开命令行
2. 导航到文件夹%windir%\system32\inetsrv
3. 创建一个名为myServerFarm的服务器农场,输入appcmd.exe set config -section:webFarms /+"[name='myServerFarm']" /commit:apphost
4. 添加一台名为wonyoo-w2k8的计算机到这个农场中,输入appcmd.exe set config -section:webFarms /+"[name='myServerFarm'].[address='wonyoo-w2k8']" /commit:apphost。有更多的服务器要加入的话,则多次运行此命令
5. 此步骤在appcmd命令方式实现农场的情况中是必须的。当用图形方式创建服务器农场时,url rewrite规则是被自动创建的。但是用appcmd方式时,url rewrite规则必须手动创建。要将所有的进站http请求路由到名为myServerFarm的农场时,输入:
a) appcmd.exe set config -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance', patternSyntax='Wildcard',stopProcessing='True']" /commit:apphost
b) appcmd.exe set config -section:system.webServer/rewrite/globalRules /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].match.url:"*" /commit:apphost
c) 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://myServerFarm/{R:0}" /commit:apphost
步骤2 – 为ARR配置服务器农场的属性
农场创建完后,有些额外的属性能够被用来管理ARR。在下面的演示中只包含了部分子集。
图形方式配置服务器农场属性:
1. 选中myServerFarm的服务器农场。显示如下:
a)
2. 在本演示中,你将改变myServerFarm农场的负载均衡算法。双击Load Balance按钮,在Load Balance Algorithm下拉框中选择Weighted round robin项,然后点击Apply。
a)
浙公网安备 33010602011771号