windows下使用IIS的ARR实现站点的负载均衡 - CSDN博客 https://blog.csdn.net/zzy7075/article/details/73294713nginx
IIS的ARR实现站点的负载均衡 nginx 对比 apache
访问localhost:18066windows
对下边两个端口负载服务器
localhost:18098app
localhost:18099负载均衡
1.经过nginxide
2.经过iis的ARR(Application Request Routing)工具
步骤:性能
用来作转发。测试
注意:
须要把对应的应用程序池的“idel time-out”设置为0。点击对应的程序池,而后点击高级配置,修改“闲置超时”(idel time out) 为0。
须要把回收时间调成0。点击对应的程序池,而后点击右边面板的“正在回收...”,按照下图修改,去掉固定时间间隔。
端口分别是18099和18098,按正常须要的配置
地址(https://www.iis.net/learn/extensions/installing-application-request-routing-arr/install-application-request-routing-version-2)
这里下载的是ARR2.0的包,因为ARR3.0会把其余内容分开来打包,因此提供2.0的总体包,3.0的你们能够按需搜索使用
以下图,增长server时须要指定端口,点击 advanced settings展开更多选项,修改端口。注意:假如是重复的地址须要使用windwo\system32\drivers\ect\hosts中增长映射来避免重复。
如:
127.0.0.1 site1host
127.0.0.1 site2host
(假如不指定则iis上全部正在的监听端口都会使用Server Farms致使错误)
点击IIS下的“Server Farms”而后选中咱们新建立的farm,双击右边中窗体中的“Routing Rules”配置路由规则
进入路由规则设置后,按照下图选中第一个选项,使用URL Rewrite来实现请求的处理,而后点击右边的“URL Rewrite”地址重写来配置具体规则
修改规则,因为咱们这边需求简单,只须要把全部请求都转发就能够,因此使用正则“^(.*)”匹配全部内容,(须要转发的内容匹配)
同时增长筛选条件(可以使用该Farms的规则),增长对端口({SERVER_PORT})的匹配,而后其余默认就能够
访问http://localhost:18096/aaa.txt
配置了轮训的负载策略后就看到了两个服务器返回对应的内容了
三种访问状况性能对比,使用工具 apache benchmark,
在同一服务器上使用iis的arr的性能跟直接访问站点接近
在同一服务器上一样的方式nginx(windows)的性能只有1/3左右
,ab -n 10000 -c 3000 http://localhost:18098/天翼live工做.txt
Concurrency Level: 3000 Time taken for tests: 15.609 seconds Complete requests: 10000 Failed requests: 0 Total transferred: 12730000 bytes HTML transferred: 10290000 bytes Requests per second: 640.66 [#/sec] (mean) Time per request: 4682.668 [ms] (mean) Time per request: 1.561 [ms] (mean, across all concurrent requests) Transfer rate: 796.45 [Kbytes/sec] received |
,ab -n 10000 -c 3000 http://localhost:18066/aaa.txt
Concurrency Level: 3000 Time taken for tests: 38.987 seconds Complete requests: 10000 Failed requests: 0 Total transferred: 12685000 bytes HTML transferred: 10290000 bytes Requests per second: 256.49 [#/sec] (mean) Time per request: 11696.169 [ms] (mean) Time per request: 3.899 [ms] (mean, across all concurrent requests) Transfer rate: 317.74 [Kbytes/sec] received |
, ab -n 10000 -c 3000 http://localhost:18096/aaa.txt
Concurrency Level: 3000 Time taken for tests: 15.560 seconds Complete requests: 10000 Failed requests: 0 Total transferred: 12969758 bytes HTML transferred: 10290000 bytes Requests per second: 642.68 [#/sec] (mean) Time per request: 4667.967 [ms] (mean) Time per request: 1.556 [ms] (mean, across all concurrent requests) Transfer rate: 814.00 [Kbytes/sec] received |