IIS负载均衡-Application Request Route详解第四篇:使用ARR实现三层部署架构(转载)
IIS负载均衡-Application Request Route详解第四篇:使用ARR实现三层部署架构
系列文章链接:
IIS负载均衡-Application Request Route详解第一篇: ARR介绍
IIS负载均衡-Application Request Route详解第二篇:创建与配置Server Farm
IIS负载均衡-Application Request Route详解第三篇:使用ARR进行Http请求的负载均衡(上)
IIS负载均衡-Application Request Route详解第三篇:使用ARR进行Http请求的负载均衡(下)
IIS负载均衡-Application Request Route详解第四篇:使用ARR实现三层部署架构
本篇的主要目的是带领大家一起来使用ARR来实现一个三层部署架构。这里的三层部署架构主要是由:服务层,应用程序服务器层已经数据层实现。如下图所示:

每次一提到“层”这个字的时候,似乎感觉这个字特别的惹火。很多朋友开始讨论起来,于是很多的见解和理解就出来了:有人说:架构就是分层;三层就是指:显示层,业务层,数据访问层…
不管上述的理解和争论对错与否,这里不会对这些理论和概念进行过多的阐释,这里有一点提到的就是:不要将物理层Tier和逻辑层Layer混在一起讲,或者说,不要将应用程序的逻辑层与物理的部署层混为一谈!
注:在自己的学习和工作的经历中有这 样的感觉:很多时候,所学的东西会搅在一起,并且甚至感觉他们相互矛盾,还会颠覆自己之前很多的理解和看法,有时候确实感觉非常痛苦,但是也是像是凤凰的 重生。其实这不是什么坏事,知识和经验就是在这过程中,不断的思考,总结,提炼出来的!其实到后来大家就可以发现:我们没有必要死扣一些概念,什么层啊, 模式,都不是关键,锻炼出一种思维才是最有价值的。
我们这里讲的是物理层的部署。
正如之前一样,我们来做一些准备工作:
- 准备三台服务器(可以用虚拟机),其中一台用来处理对静态内容的请求,例如图片,脚本,html页面等,我们把这一台服务器放在第一层。
- 再用一台服务器放在第二层,作用应用程序服务器,用来处理动态内容的请求。
- 另外一台服务器用来部署数据库。
另外,我也把三台服务器的相关配置说明一下:
- 三台服务器安装了Win Server 2008和IIS
- 在那台处理静态文件的服务器上,我们安装ARR,也就说,此时这一台服务器做两件事情:负责转发请求;处理对静态文件的请求。
第一步:准备工作
一般而言,我们判断是否是对静态文件进行请求,主要是通过检查请求的中是否包含文件的扩展名,例如.js,.png等。当然,在一些情况下,我们还以动态 的方式来对静态文件的请求进行处理,例如,我们站点中写了一个类似FileHandler的HttpHandler,然后通过类似的www.agilesharp.com/file?fileid=xxxxx的方式来 处理所有对文件的请求。这两种方式各有优缺点和各自的用途,我们这里不做讨论。
很多时候,我们在静态文件放在站点的文件夹中,例如/images/,/css/,/js/等。下面,我们开始演示,我们为了确认对静态文件的请求是由安 装了ARR所在的服务器处理的,我们分别在三服务器的站点中放置三张名字一样但是内容不同的图片,如下:

其他服务器上面的站点结果和这个类似,只是把图片的内容改为了“安捷雨希“而已。
第二步:在ARR中配置对静态文件的请求
我们进行这一步操作的主要目的就是:使得ARR所在的服务器来处理所有对站点静态文件的请求(为了起到演示作用,这里对静态文件的请求,我们不会包括html的文件)。
下面,我们就开始操作:
- 启动IIS
- 创建一个Server Farm,并且添加两台服务器,如图所示:

这个205服务器就是我们安装了ARR的服务器,因为此时我的demo站点部署在8080端口,所以这里要开启“Advance setting“。
再添加第二台服务器,其上的站点是部署在80端口。
添加的结果就如下:

大家到这里就可能有点纳闷了:怎么只是添加了两台服务器呢,不是准备了三台服务器吗?
理由很简单,有一台服务器是作为数据库服务器,而不是作为http请求处理的服务器(换句话说,http请求不会发送到数据库服务器上去),并且数据库服务器是我们在应用程序中通过连接字符串来连接的。
在我还没有配置Server Farm之前,我分别在两台服务器上浏览了站点:http://localhost:8080/images/logo.png,此时看到的结果如下:

从图中可以看到,我请求logo.png的时候,是应用程序的服务器(没有安装ARR的那个服务器)处理了这个请求。
下面我们开始配置。
1. 选中创建的Server Farm
2. 选中“Routing Rules“,如下:

3. 双击“Routing Rules“,如下:

主要注意图中标红的两个地方:第一个是配置哪些扩展名的文件不转发请求。在图中,我们配置了*.png,就说明,如果ARR客户端要请求.png文件,那么ARR就不将这个请求转发给Server Farm中的其他服务器,而是有本机直接处理。
配置好了之后,我们就点击“Apply“,然后再次运行浏览器,来看效果。

大家看到上面的图,右边图是我在ARR所在的服务器发送请求得到的结果,而左边是我直接在应用程序服务器上面查看图片。
还记得在之前没有配置的时候,我在ARR服务器上面发送请求的时候,看到的是“安捷雨希“,说明ARR转发了对png文件的请求;而当我们配置之后,此时ARR就不在转发这个请求,而是自己处理,所以我们看到了”agilesharp“的图片。
这里,依然给大家留一个作业:大家可以把对html文件的请求也不转发,看看效果!
今天就到这里!如果大家感兴趣和有问题,可以注册agilesharp的用户,可以在线时时交流!
IIS负载均衡-Application Request Route详解第四篇:使用ARR实现三层部署架构(转载)的更多相关文章
- IIS负载均衡-Application Request Route详解第二篇:创建与配置Server Farm(转载)
IIS负载均衡-Application Request Route详解第二篇:创建与配置Server Farm 自从本系列发布之后,收到了很多的朋友的回复!非常感谢,同时很多朋友问到了一些问题,有些问 ...
- IIS负载均衡-Application Request Route详解第一篇: ARR介绍(转载)
IIS负载均衡-Application Request Route详解第一篇: ARR介绍 说到负载均衡,相信大家已经不再陌生了,本系列主要介绍在IIS中可以采用的负载均衡的软件:微软的Applica ...
- IIS负载均衡-Application Request Route详解第一篇: ARR介绍
IIS负载均衡-Application Request Route详解第一篇: ARR介绍 说到负载均衡,相信大家已经不再陌生了,本系列主要介绍在IIS中可以采用的负载均衡的软件:微软的Applica ...
- Nginx/LVS/HAProxy 负载均衡软件的优缺点详解
Nginx/LVS/HAProxy 负载均衡软件的优缺点详解 Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验 ...
- 总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解
总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解 PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使 ...
- Nginx/LVS/HAProxy负载均衡软件的优缺点详解【转】
转自 (总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解http://www.ha97.com/5646.html PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均 ...
- (总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解
Nginx/LVS/HAProxy负载均衡软件的优缺点详解 PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均 ...
- IIS中应用Application Request Route 配置负载均衡
转自:https://blog.csdn.net/wucong60/article/details/84930234 简介ApplicationRequest Route(后面简称为ARR)是一个寄宿 ...
- 负载均衡之Haproxy配置详解(及httpd配置)
下图描述了使用keepalived+Haproxy主从配置来达到能够针对前段流量进行负载均衡到多台后端web1.web2.web3.img1.img2.但是由于haproxy会存在单点故障问题,因此使 ...
随机推荐
- 微信公众平台JSSDK开发
根据微信开发文档步骤如下: 1.先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”.JS接口安全域名设置 mi.com(前面不用带www/http,域名必须备案过) 2.引入 ...
- SgmlReader使用方法
HtmlAgilityPack是一个开源的html解析器,底层是通过将html格式转成标准的xml格式文件来实现的(使用dot net里的XPathDocument等xml相关类),可以从这里下载:h ...
- 在View页面,使用@if(){ }输出判断正确的内容
@if (true) { Html.Raw("已结束"); } 发现这段代码是正确,但是页面不输出"已结束"三个字,但是也不报错 @if (DateTime.N ...
- jquery实现文件异步上传
前言 这里用了2个JS插件,一个是Jquery原生js,我的版本是jquery-1.7.2.min.js,另一个是jquery.form.js.这个form.js 是关键,不可少哦.另外, 我的服务器 ...
- web性能优化之:no-cache与must-revalidate深入探究
引言 稍微了解HTTP协议的前端同学,相比对Cache-Control不会感到陌生,性能优化时经常都会跟它打交道. 常见的值有有private.public.no-store.no-cache.mus ...
- IT男的”幸福”生活"续5
各位哥们姐妹们,好,嗯,好.很多回复还是提到[IT男的”幸福”生活"]是小说来着剧情不真实,我还是免为其难的说一下吧.是真的回忆录,具体的事情都有.人也是真实的.在这里还是谢谢,这几天一直关 ...
- 深入学习JavaScript(一)
1.全局变量与局部变量 全局变量:全局变量就是在函数的外部定义的一个在其他地方都可以调用的变量 局部变量:局部变量是相对于全局变量而言的,局部变量指的是在一个区域内存在这个变量 全局变量的创建原理是在 ...
- css的垂直居中
请先看博客:http://www.jb51.net/css/39629.html
- [wikioi 1418]铃仙•优昙华院稻叶(东方幻想乡系列模拟赛)(树上递推)
题目:http://www.wikioi.com/problem/1418/ 分析: 一看就肯定是树上的递推 设f[i][j][k]表示第i秒在k点(从j点走过来的)的概率 则f[i][j][k]=f ...
- AngularJS-MVC
前言: 编程是一个很苦恼的工作,因为需要我们不断的去学习,不断的去专研,我本身就不是一个很喜欢学习的孩子,要不然从小到大也没有成绩好过,但是,我从来没有缺少过勤奋,还是让我们言归正传来说下 我们这段时 ...