• IIS中应用Application Request Route 配置负载均衡


    转自:https://blog.csdn.net/wucong60/article/details/84930234

    简介
    ApplicationRequest Route(后面简称为ARR)是一个寄宿于IIS7(及以后的IIS版本)的一个基于代理的模块,它可以通过判断Http Headers,Server Variables以及负载均衡算法将HTTP的请求转发到不同的处理服务器之上。ARR是基于URLRewrite Module的,它通过检测客户端发来的HTTP请求来做出请求路由的决定。

    ARR安装(目前v3.0)
    这是下载链接:http://www.iis.net/download/ApplicationRequestRouting

    看到上面的Service Farms 就说明你安装成功了。

    Demo 
    我手上有三台Windows机器,本地的机器用作负载均衡,如下:

    服务器 IP地址 是否安装了ARR
    本地 localhost 是
    服务器A
    212.64.27.238


    服务器B
    132.232.110.243


    在三台机器上都新建一个网站,名为arr,网站的内容只有一个index.html,端口都为8888,如下只贴了本地的机器:

     右击Server Farms,点击Create Server Farm,这个里命名为mytestarr。界面如下:

     Server Farms 就是对一个或多个服务器进行逻辑分组,在这里加了两台服务器,端口也改成了8888,告诉ARR这是要转发的端口,如下。

     在Server Farms主界面点击Routing Rules,选中“Use URL Rewrite to inspect incoming requests”,界面如下:

     选中之后,点击CDC317011(DIRcong.wu),再点击URL Rewrite,会发现下面会多出一条URL重写规则,这里是load balance起作用的核心,如果不想用load balance了,可以不选中上面的“Use URL Rewrite to inspect incoming requests”,如果你选中了,那下面的这个规则就起作用了,它会把对我本机的所有端口的请求都转发到server farm的服务器上的8888端口。

     在Server Farms主界面点击Load Balance,选择Weighted round robin

    好了,配置完成,我们直接访问localhost:8888试试,我们连续访问两次,得到的结果如下:

     到这里可以看到使用ARR配置负责均衡成功了。下面是对一些具体配置信息的介绍,Server Farms主界面上面有7个图标,我们一一介绍。

    缓存
    自行意会吧,不介绍了。

    健康检查
    几乎所有的load balancer都有这一步。ARR如果判断这些服务器是否还在运行呢,这里使用一个文件,ARR会每隔30秒向这些服务器Check这个文件,如果返回的结果正确,那就表明这些服务器是正确的。

    先在两台服务器上,指定的路径下创建一个text.txt文件,里面输入ok。在本地机器上Server Farms主界面点击Health Test,输入如下内容,点击Apply。

    配置好后,ARR可以自行判断哪些服务器是可用的,不然的话,如果其中某台服务器挂了,ARR依然会把请求转发给这台挂了的服务器,请求就会丢失。

    Load Balance


     负载均衡的算法这里有4种,网上有许多介绍了,这里不介绍了。

    监控和管理
    这里可以看到被请求的次数等情况

     代理(Proxy)


    看这篇官网的文章https://docs.microsoft.com/en-us/iis/extensions/configuring-application-request-routing-arr/creating-a-forward-proxy-using-application-request-routing

    Routing Rules


     选中了“Use URL Rewrite to inspect incoming requests”后,URL rewrite才会生效,ARR的负载均衡才能成功。如果添加如下配置呢,它会将所有的png图片不进行转发,拥有ARR的服务器可以直接处理静态资源。

    Server Affinity

    这里很重要,当选中了Client affinity之后, 再来访问localhost:8888试试

     可以看出Cookie里面多出一个ARRAffinity,启用了Client Affinity之后,当你第一次访问此网站的时候,这个ARRAffinity会记住是哪台服务器处理了你的请求,你的后续请求都会发送到此台服务器上,这对于有状态的服务器非常有用,比如在.net framework时代常用的Session。

    拒绝新的请求
    点击Take Server Offline后,这台服务器就不会接受新的请求了,但原有的还在执行的请求会继续执行。

    参考链接
    https://docs.microsoft.com/en-us/iis/extensions/configuring-application-request-routing-arr/http-load-balancing-using-application-request-routing#overview

    总结
    Azure Web APP里负载均衡也是使用得是它,天然支持七层Load Balancer,点击这里看看。
    ————————————————
    版权声明:本文为CSDN博主「wucong60」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/wucong60/article/details/84930234

  • 相关阅读:
    使用 Fiddler 对android模器进行Http监控(转)
    UDID替代方案(转)
    iPhone用nib/xib文件载入窗口,和用代码写窗口,到底哪个快?(转)
    UINavigationController修改默认的动画
    《Programming WPF》翻译 第8章 5.创建动画过程
    《Programming WPF》翻译 第8章 6.我们进行到哪里了?
    《Programming WPF》翻译 第8章 2.Timeline
    《Programming WPF》翻译 第9章 4.模板
    《Programming WPF》翻译 第9章 1.自定义控件基础
    《Programming WPF》翻译 第9章 前言
  • 原文地址:https://www.cnblogs.com/lhxsoft/p/11838795.html
Copyright © 2020-2023  润新知