隐藏

IIS负载均衡Application Request Route 安装配置说明(ARR)

发布:2023/7/1 10:50:28作者:管理员 来源:本站 浏览次数:452

1 ARR介绍


ApplicationRequest Route(后面简称为ARR)是一个寄宿于IIS7(及以后的IIS版本)的一个基于代理的模块,它可以通过判断Http Headers,Server Variables以及负载均衡算法将HTTP的请求转发到不同的处理服务器之上。ARR的用处如下:


   增强应用的可用性与扩展性

   更好的利用服务器资源

   使得应用程序的部署更加方便,并且支持卫星部署管理与热替换


ARR是基于URLRewrite Module的,它通过检测客户端发来的HTTP请求来做出请求路由的决定。










参考链接:


https://mp.weixin.qq.com/s?__biz=MzAwNTMxMzg1MA==&mid=2654067559&idx=2&sn=467c3d92089124480fdb62584857e807&scene=21#wechat_redirect


  文章是连载,文末有前面几章的链接。文章中讲的2.5版本,目前最新版是3.0,本文也用3.0安装搭建ARR环境;

2   安装


官网下载地址:


https://www.iis.net/downloads/microsoft/application-request-routing


官网是用Web平台安装程序,按照提示安装即可。




脚本之家下载地址:


https://www.jb51.net/softs/629246.html


下载后有3个依赖项和ARR需要安装。


以下是脚本之家下载的安装说明

2.1 停止服务


  打开cmd命令行,分别执行net stop was /y和net stop wmsvc /y,一般第二个没有开启。

2.2 手动安装ARR及其依赖项


   webfarm_v1.1_amd64_en_us.msi

   ExternalDiskCache_amd64_en-US.msi

   rewrite_amd64_en-US.msi

   requestRouter_amd64.msi


按照提示安装即可。

2.3 启动服务


打开cmd命令行,分别执行net start was和net start wmsvc  

3  创建Server Farm


ApplicationRequest Route模块的使用是和Server Farm模块结合在一起的,只有先创建了Server Farm,才能开始使用Application Request Route进行HTTP请求路由。ServerFarm简而言之就是:对一个或者多个服务器的逻辑分组,便于管理,HTTP请求路由等。

3.1 新建ServerFarm


打开IIS管理器,在右侧可以看到Server Farm项,右键,点击Create Server Farm,输入自定义Farm名称;online:勾选即为开启Server Farm。















3.2 添加应用服务地址


点击“下一步”,添加应用服务地址


Server address:填写应用服务的IP(如:192.168.1.112)或域名(www.XXXXX.com)


 Advanced setting:点击打开配置项,点击applicationrequest routing前的加号,设置服务参数














如果http端口不是默认端口80,修改httpPort项(如:8000),修改后点击“Add”,一定要先修改端口,再点“Add”;weight为权重值,用于负载均衡运算分发,暂时默认即可。








添加后,在服务列表中可以看到添加的服务,点击“完成”:








点击“完成”后,弹出是否创建于此Server Farm关联的URL 重写规则,点击“是”。








 完成后可以在IIS中看到新建的Server Farm,可以添加、移除、下线、上线应用服务。









4  服务器运行状况监控


    ARR可以配置通过发送GET请求来检测ServerFarm中的服务器是状态良好的。这个原理和我们时不时的ping一个电脑,来判断其是否还可以连接一样。


我们可以在在每个站点中放置一个文件(任意IIS允许请求的文件,例如txt,html,aspx页面等,不能是.config等文件,例如:http://localhost/a.txt,(因接收请求的是ARR服务器本地,所以用localhost即可)在文本中写一段文本,如:AAA,


打开IIS管理器,点击左侧Server Farm=》ARREIM,点击右侧“Health Test”,打开健康测试模块:








配置如下:








ARR会每隔30秒(Interval)就去请求一次,然后比较请求的响应是否是“AAA”,从而判断服务器是否状态良好。


点击 Verify URL Test,可以测试当前在线服务器的状态,如果正常Result、Details都显示Pass;如果异常,Result显示Fail,Details显示异常信息。









5  选择负载均衡算法


打开“Load Balance”














Weighted round robin:加权循环,根据传入请求的数量及其标准化权重分配流量。每个服务器都可以接收相同的请求分发或自定义分发。


Server variable hash:服务器变量哈希,根据服务器变量的hash来分配请求,这里面的服务器变量包括Cookie, URL,头信息等。


Query string hash:查询字符串哈希,根据URL查询字符串的hash来分配请求,如果查询字符串包含多个参数(?name=jesse&location=sh),则是用整个查询字符串的hash来作判断。


Request hash:请求哈希,根据服务器变量或者是URL的hash来分配请求,比如说服务器变量是QUERY_STRING,那么hash的值就是query string中对应的那个值。


默认Weighted round robin:加权循环,按照权重设置分发请求,如:现有两台应用服务器B、C,B权重100,C权重100,则两台应用服务器平均分发;B权重100,C权重300,则1/4请求分发给B,3/4请求分发给C。

6  监控和管理


在Server Farm页,打开“Monitoring and Management”,可以查看各应用服务的健康状态、请求分布及数量、请求响应时间、请求大小、权重等信息。














选中一个应用服务,点击右侧按钮或者右键,可以重置统计信息、停止服务、禁止连接等









7  负载均衡器也做应用服务器


按照上面服务器设置,网络拓扑图如下图:






有时一台服务器只当做负载均衡器,ARR服务占用系统资源很少,设备利用率较低,浪费资源。我们可以将负载均衡服务器也作为一台应用服务器运行。改在为下图结构:







7.1 添加ARR本地应用服务


添加ARR本地应用服务时,IP填写127.0.0.1,端口设置为8000,









7.2 修改Server Farm对应的URL重写规则


打开IIS管理器,在主页IIS下找到“URL 重写”,双击打开








打开URL重写可以看到Server Farm对应的重写规则,选中,右键,条件=》添加,












“条件输入”框中输入{SERVER_PORT},“检查输入字符串是否”选择“与模式匹配”,“模式”中输入80,点“确定”



7.3 ARR服务器多应用服务站点


如果ARR服务器本地需要部署多个应用服务站点,需要在C:\Windows\System32\drivers\etc\hosts文件末尾添加映射,如:


127.0.0.1 site1


127.0.0.1 site2