zoukankan      html  css  js  c++  java
  • 负载均衡之应用请求路由模块的使用(ARR)(五)[配置ARR方式的三层部署体系]

    配置ARR方式的三层部署体系

    概览

    本篇文章指导你用ARR来配置部署三层结构。三层部署体系需要由Web层、应用程序层和数据层组成,如下图:

    http://learn.iis.net/file.axd?i=1042

    一般在这种部署场景中,静态内容是由Tier1层的服务器host的,而动态内容是由Tier2层来host的。

    先决条件

    本演示需要以下几个先决条件:

    装有IIS7Win2008,或者更高版本

    Microsoft Application Request Routing和相关联的模块

    至少2台部署有工作站点和应用程序的内容服务器

    ARR服务其上,静态内容必须是能访问的

    步骤1 – 为静态内容更改相应的URL Rewrite规则

    在本步骤中,URL rewrite规则会根据静态内容的扩展名的不同来作出筛选。能够根据文件扩展名来辨认出是否为静态内容,如.jpg或者.gif。如果静态文件是放在某个目录中的,比如/images/目录,则URL rewrite规则也能根据目录名来进行筛选。

    在本演示中,我们会设置URL Rewrite规则根据扩展名.jpg/.css以及目录/images/来筛选。如果所请求的资源扩展名是.jpg或者.css,则这个请求会直接由ARR服务器处理掉(不转发到内容服务器)。类似的,如果请求的资源包含/images/路径,也是这样处理。而所有其它的请求则会被ARR服务器转发给各个内容服务器来处理。

    在继续之前,确保静态内容在ARR服务器上是能够被访问得到的。这些静态内容既可以是ARR服务器本地的,也可以是由共享目录实现的。

    通过图形界面更改URL Rewrite规则:

    1.       打开IIS管理器

    2.       打开农场myServerFarm(前几篇文章中创建的一个农场名称)

    3.       显示如下:

    a)         http://learn.iis.net/file.axd?i=1199

    4.       双击Routing Rules

    a)         Requests with following extensions are not forwarded中输入*.jpg, *.css(逗号分隔开多个)

    b)         Requests with following patterns are not forwarded中输入*/images/*

    c)         http://learn.iis.net/file.axd?i=1206

    5.       要确认静态图片已经被ARR服务器处理了,可以查看日志文件。日志文件默认的位置是c:\inetpub\logs\LogFiles\。在日志文件中能看到这些jpg, css, images没有被内容服务器处理。

    命令行方式更改URL rewrite规则:

    1.       administrator身份打开命令行

    2.       导航到目录%windir%\system32\inetsrv

    3.       输入下列命令清除所有URL Rewrite规则:

    a)         appcmd.exe clear config -section:system.webServer/rewrite/globalRules

    b)         接着更改规则来把请求这些扩展名*.jpg, *.css以及路径/images/的资源不转发到内容服务器:

                             i.              appcmd.exe set config -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True']" /commit:apphost

                           ii.              appcmd.exe set config -section:system.webServer/rewrite/globalRules /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].match.url:"*" /commit:apphost

                          iii.              appcmd.exe set config -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].conditions.[input='EXT_{URL}',negate='True',pattern='*.jpg']" /commit:apphost

                          iv.              appcmd.exe set config -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].conditions.[input='EXT_{URL}',negate='True',pattern='*.css']" /commit:apphost

                           v.              appcmd.exe set config -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].conditions.[input='{URL}',negate='True',pattern='*/images/*']" /commit:apphost

                          vi.              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://myServerFarm1/{R:0}" /commit:apphost

  • 相关阅读:
    服务器上的 Git
    进程有哪几种基本状态,在一个系统中为什么必须区分出这几种状态?
    什么是进程,进程与程序的主要区别是什么?
    什么是与时间有关的错误,是举例说明。
    试解释下列名词:程序的顺序执行,程序的并发执行。
    简述系统调用的执行过程?
    假定某系统提供硬件的访管指令(例如形式:“svc n”),为了实现系统调用,系统设计者应做哪些工作?用户又如如何请求操作系统服务?
    什么是系统调用,对操作系统的服务请求与一般子程序调用有什么区别?
    Windows系统提供什么样的接口,Unix、Linux系统的用户接口是什么?
    用户与操作系统的接口是什么?一个分时系统提供什么接口?一个批处理系统又提供什么接口?
  • 原文地址:https://www.cnblogs.com/aarond/p/2014057.html
Copyright © 2011-2022 走看看