分享
分享赚钱 收藏 举报 版权申诉 / 42

类型Apache反向代理实现WEB.ppt

  • 上传人:11xg27ws
  • 文档编号:6938493
  • 上传时间:2019-04-28
  • 格式:PPT
  • 页数:42
  • 大小:416.50KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Apache反向代理实现WEB.ppt
    资源描述:

    1、Apache反向代理实现WEB负载均衡,李玮越,一.负载均衡的实现方式,1.1 实现web负载均衡的方式实现web负载均衡有四种方式:1.使用Apache的JK native connector.2.使用Apache的mod_proxy及相关模块.3.使用Apache的mod_backhand模块.4.使用Tomcat5附带的balancer webapp.,负载均衡的实现方式(一),1.2 使用JK native connectorJK native connector 是一种连接器,它能建立tomcat与各种HTTP服务器之间的连接,完成通信,其一般安装在HTTP服务器上。其支持的HTTP

    2、服务器有Apache,IIS,Netscape。其中,Apache的mod_jk是实现JK的模块。,负载均衡的实现方式(一),1.2.1 JK结构图,负载均衡的实现方式(一),1.2.2 JK模块设计的配置文件httpd.conf 指定要做什么workers.properties 指定哪些资源可用uriworkermap.properties 指定如何使用资源,负载均衡的实现方式(一),1.2.3 AJP协议AJP协议是一种打包/压缩协议,经常使用二进制格式。Web服务器和servlet容器通过TCP连接通信。为了减少socket创建过程的资源浪费,web服务器将长期维持与servlet容器的

    3、TCP连接并对每个连接进行复用,在其上能完成多次请求和应答。注意:基于AJP协议通信,每个连接与特定请求绑定,只有请求结束,它才能被其他请求占用。,负载均衡的实现方式(一),1.2.4 使用JK模块实现均衡的特点 优点:1.AJP协议效率更高,节省带宽资源。2.后台服务器上运行tomcat,容易配置。3.集群容易配置,其本身即有分配算法 (RR法),而且能完成小型系统的会话 保持。4.JK模块是开源的,可以下载源代码, 再其基础上改进分配策略。,负载均衡的实现方式(一),1.2.4 使用JK模块实现均衡的特点 缺点:1.要求后端服务器必须运行tomcat.2.tomcat处理静态请求效率略低,

    4、且 为同步,阻塞式的.3.需要配置所有的后端服务器的配置 文件.,负载均衡的实现方式(二),1.3 使用mod_backhand模块mod_backhand是Apache的一个模块,是由美国约翰霍普金斯大学计算机科学系设计出来的,该模块由C+实现。mod_backhand能将客户对某一服务器的请求准确地重定向(redirect)到另一台服务器上(前提是这两台服务器上都要有客户请求的内容)。,1.3.1 mod_backhand适用环境 mod_backhand 可以更好的利用服务器资源,但如果带宽是系统的瓶颈,那么它无法带来帮助。如果CGI请求很多或是服务器太弱而无法独立处理请求,mod_ba

    5、ckhand是一个解决方法。mod_backhand可以独立使用或者与大部分的负载均衡工具联合使用。,负载均衡的实现方式(二),负载均衡的实现方式(二),1.3.2 重定向(redirect) mod_backhand实现的重定向是将用户请求从繁忙的服务器导向空闲的服务器,使资源被充分利用,它提供的是细粒度的均衡,对每一个web请求可以使用一种均衡策略。,负载均衡的实现方式(二),这种重定向也需要一定的计算,计算现在哪台服务器拥有最多的资源(如cpu,内存资源等),所以也会有一些开销。各个服务器之间进行通信,交换自己现在可用资源的信息。基于这个信息,接受到客户请求的服务器将请求传递给当前可用资

    6、源最多的服务器。,负载均衡的实现方式(二),1.3.3 均衡策略mod_backhand提供很多均衡策略byAge byLoad byBusyChildrenbyCpu byLogWindow byRandombyCost bysession,负载均衡的实现方式(二),1.3.4 mod_backhand模块特点 优点:1.mod_backhand模块是开源的。2.mod_backhand提供的均衡策略多。3.服务器上运行Apache,效率较高。4.可以与大多数均衡工具联合使用。,负载均衡的实现方式(二),1.3.4 mod_backhand模块特点 缺点:1.mod_backhand即负载均

    7、衡器,没有 独立的一台服务器做均衡器,需要控 制所有的服务器,且都安装Apache和 mod_backhand模块。2.为了了解其他服务器的资源情况,需 要不断通信,通信量很大。3.没有考虑session机制,需自己实现。,负载均衡的实现方式(三),1.4 使用balancer webappTomcat 5 之后的版本附带了一个网络应用叫balancer.它是一个简单的基于规则的负载均衡器,所以它不是为了大通信量,高负载的环境而设计的,它是由java编写的,容易扩展。,负载均衡的实现方式(三),1.4.1 运行环境尽管balancer是Tomcat附带的,但是它并非只能运行在Tomcat上,它

    8、可以不需改动就运行到其他的容器上。如果希望使用过滤器(filter)来完成重定向,Balancer则需要一个Servlet容器。,负载均衡的实现方式(三),1.4.2 分配策略balancer默认使用一个简单的过滤器,BalancerFilter来映射所有请求。过滤器从配置文件web.xml中读取规则。,负载均衡的实现方式(三),默认规则如下: URL里含有“News“的请求转向 把一个带有paramName的参数,参数值是paramValue的请求转向。 把所有其它请求转向jakarta.apache.org。,负载均衡的实现方式(三),1.4.3负载均衡规则均衡器系统的规则是一个请求匹配条

    9、件,以及相匹配请求的URL重定向的组合。这些规则实现org.apache.webapp.balancer.Rule接口。balancer自带许多有用的规则。这个框架很方便扩展,可以快速编写自己的规则。规则必须是标准的JavaBean,负载均衡的实现方式(三),每个BalancerFilter (或者 Servlet/JSP)在做重定向决定时参考一个RuleChain。可以使用Servlet Specification里定义的full filter mapping可能性,随意配置想要的多个过滤器。每个过滤器有它自己的RuleChain。,负载均衡的实现方式(三),1.4.4 工作流程 首先编写一

    10、个包含匹配规则和重定向的配置文件。 在web.xml文件中定义均衡器过滤器,将它映射到你想要的url(通常都是 /*) ,并通过配置文件里的规则来配置。 服务器启动,初始化过滤器。 请求传入服务器。 RuleChain来决定把这个请求转向哪里。规则是按照规则配置文件里定义的顺序来进行匹配的。 找到第一个匹配上的规则后,不再继续匹配,这个请求马上被重定向。,负载均衡的实现方式(三),1.4.5 balancer web 的特点 优点:1.只需将其部署在均衡器上,与后台服 务器无关。2.由java编写,移植和扩展性好。3.实现简单,只要设置过滤器即可。,负载均衡的实现方式(三),1.4.5 bal

    11、ancer web 的特点 缺点: 1.使用过滤方式,很难扩展,在其上应 用其他算法。2.这种方式与基于业务的分配方式相 似,每台服务器完成不同的服务,如 果服务器宕机,则无法正常工作。3.没有考虑通话保持机制。,二.代理技术,2.1代理服务器代理服务器(Proxy Server)的功能是代理网络用户去取得网络信息。代理服务器是介于浏览器和Web服务器之间的一台服务器,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,请求会先送到代理服务器,由代理服务器取回所需的信息并传回浏览器。,代理技术,2.2正向代理正向代理是一个位于客户端和源服务器(origin server)之间的服务

    12、器。为了从源服务器取得所需内容,客户端向代理发送一个请求并指定目标(源服务器),然后代理向原服务器转交请求并将获得的内容返回给客户端。正向代理的典型应用时为在防火墙内的局域网客户端提供访问Internet的途径。,代理技术,2.3反向代理反向代理与正向代理相反,对于客户端而言,它(代理服务器)就像源服务器,客户端向反向代理的命名空间(name-space)中的内容发送普通请求,接着反向代理判断向何处(源服务器)转交请求,并将获得的内容返回给客户端,就像这些内容原本就是它(代理服务器)自己的一样。,代理技术,2.4反向代理的典型应用反向代理的典型用途是将防火墙后面的服务器提供给Internet用

    13、户访问。反向代理还可以为后端的多台web服务器提供负载均衡。另外,它还可以启动高级URL策略和管理技术,从而使多个web服务器访问相同的URL空间(reverse proxies can be used simply to bring several servers into the same URL space)。,三.用mod_proxy实现负载均衡,3.1 概述mod_proxy模块实现了Apache的代理/网关功能,可以进行正向代理和反向代理。它支持的通信协议有AJP协议,FTP协议,HTTP1.0/1.1协议。Apache的代理功能被划分到几个不同的模块中:mod_proxy_htt

    14、p mod_proxy_ftpmod_proxy_ajp mod_proxy_balancer mod_proxy_connect,三.用mod_proxy实现负载均衡,如果想使用一个或多个代理功能,需要将mod_proxy和对应模块同时加载到服务器中。另外,其他模块提供了扩展特性,mod_cache及其相关模块提供缓冲特性。使用mod_proxy,mod_proxy_http,mod_proxy_balancer这三个模块,采用反向代理技术能实现web负载均衡。,三.用mod_proxy实现负载均衡,3.2 mod_proxy的特点本实验使用mod_proxy与相应的模块通过反向代理来实现w

    15、eb负载均衡。使用mod_proxy方式的优点如下: 1. mod_proxy支持HTTP协议,后台的服 务器可以运行任意的中间件,如 tomcat,apache,weblogic等。,三.用mod_proxy实现负载均衡,2. mod_proxy是Apache的模块,Apache中 的模块多,可以与其他模块结合使用,实 现更方便,功能更强大。3. mod_proxy考虑了session机制,通话保 持容易实现。4. mod_proxy与其相应模块的配置与操作简 单,使用指令即可。,三.用mod_proxy实现负载均衡,5.mod_proxy_balancer提供三种均衡策 略,而且容易扩展。

    16、6.均衡器上运行Apache,这样可以在 Apache上开发嵌入式程序,来完成老化 检测的其他功能。,三.用mod_proxy实现负载均衡,3.3 实现方式目前存在两种实现web负载均衡的方式:第一种是分工合作的形式,通过各台主机负责不同的任务而实现任务分工;第二种是不同的服务器担任同样的任务,若某一服务器出现故障,均衡器可以检测到故障而不会影响客户端。本实验采用第二种方式。,三.用mod_proxy实现负载均衡,3.4 均衡策略mod_proxy_balancer提供三种负载均衡策略:Request Counting Weighted Traffic Counting Pending Req

    17、uest Counting,三.用mod_proxy实现负载均衡,3.4.1 balancer参数 lbfactor: 期望这个worker完成的工作量,或者 叫worker的工作配额(quota)。lbstatus: worker完成其配额工作的急切程度。worker: 是负载均衡器的一个成员,通常是一 个远程主机(即一个apache进程)。,三.用mod_proxy实现负载均衡,3.4.2 Request CountingRequest Counting是均衡器将请求分给每个worker,使得每个worker得到其配额的请求数。通过设置balancer的参数lbmethod=byreque

    18、sts即可使用该策略。,三.用mod_proxy实现负载均衡,工作流程:均衡器给每个worker其额定(quota)的工作量,然后查看哪个worker的优先级最高,任务最紧急(lbstatus最大)。这个worker开始工作,它的lbstatus减去所有worker额定的工作总量,结果作为自己新的lbstatus,这样所有的worker的lbstatus总量不变。,三.用mod_proxy实现负载均衡,3.4.3 Weighted Traffic Counting 这种方式与Request Counting十分相似,区别是lbfactor是worker需要完成的通信量(traffic),以字节

    19、计算。这样就以通信的字节数来衡量,而不是Request Counting中简单的请求数。通过设置参数lbmethod=bytraffic即可激活该策略。,三.用mod_proxy实现负载均衡,3.4.4 Pending Request Counting 这种方式不断监测每个worker目前响应的请求数,一个新的请求自动被分配给目前活动响应最少的worker。(This is useful in the case of workers that queue incoming requests independently of Apache)?,三.用mod_proxy实现负载均衡,3.4.5 环境变量 BALANCER_SESSION_STICKY指定了当前请求中分配的sticky session的值,它是sticky sessions的cookie或参数值。BALANCER_SESSION_ROUTE指定了当前请求解析的路由(route),具体实验步骤见论文。,

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Apache反向代理实现WEB.ppt
    链接地址:https://www.docduoduo.com/p-6938493.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开