精华内容
下载资源
问答
  • Web负载均衡

    2018-06-01 10:51:00
    目前最常见的负载均衡应用是Web负载均衡。根据实现的原理不同,常见的web负载均衡技术包括:DNS轮询、IP负载均衡和CDN。其中IP负载均衡可以使用硬件设备或软件方式来实现。什么是web负载均衡服务器集群(Cluster)使得...

    摘要:


    负载均衡(Load Balance)是集群技术(Cluster)的一种应用。负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力。目前最常见的负载均衡应用是Web负载均衡。根据实现的原理不同,常见的web负载均衡技术包括:DNS轮询、IP负载均衡和CDN。其中IP负载均衡可以使用硬件设备或软件方式来实现。


    什么是web负载均衡


    服务器集群(Cluster)使得多个服务器节点能够协同工作,根据目的的不同,服务器集群可以分为:

    • 高性能集群:将单个重负载的请求分散到多个节点进行处理,最后再将处理结果进行汇总
    • 高可用集群:提高冗余单元,避免单点故障
    • 负载均衡集群:将大量的并发请求分担到多个处理节点。由于单个处理节点的故障不影响整个服务,负载均衡集群同时也实现了高可用性。

    一般提到的负载均衡(Load Balance),是指实现负载均衡集群。负载均衡实现了横向扩展(Scale Out),避免纵向的升级(Scale Up)换代。

    本文中的web负载均衡,特指能够分担web请求(http,https等)的负载均衡技术。


    基本原理


    任何的负载均衡技术都要想办法建立某种一对多的映射机制:一个请求的入口映射到多个处理请求的节点,从而实现分而治之(Divide and Conquer)。

    这种映射机制使得多个物理存在对外体现为一个虚拟的整体,对服务的请求者屏蔽了内部的结构。

    采用不同的机制建立映射关系,可以形成不同的负载均衡技术,常见的包括:

    • DNS轮询
    • CDN
    • IP负载均衡


    DNS


    DNS轮询是最简单的负载均衡方式。以域名作为访问入口,通过配置多条DNS A记录使得请求可以分配到不同的服务器。

    DNS轮询没有快速的健康检查机制,而且只支持WRR的调度策略导致负载很难“均衡”,通常用于要求不高的场景。并且DNS轮询方式直接将服务器的真实地址暴露给用户,不利于服务器安全。

    CDN

    CDN(Content Delivery Network,内容分发网络)。通过发布机制将内容同步到大量的缓存节点,并在DNS服务器上进行扩展,找到里用户最近的缓存节点作为服务提供节点。

    因为很难自建大量的缓存节点,所以通常使用CDN运营商的服务。目前国内的服务商很少,而且按流量计费,价格也比较昂贵。


    IP负载均衡


    IP负载均衡是基于特定的TCP/IP技术实现的负载均衡。比如NAT、DR、Turning等。是最经常使用的方式。关于其原理,可以参考下面另一篇文章:lvs中的负载均衡方式

    IP负载均衡可以使用硬件设备,也可以使用软件实现。硬件设备的主要产品是F5-BIG-IP-GTM(简称F5),软件产品主要有LVS、HAProxy、NginX。其中LVS、HAProxy可以工作在4-7层,NginX工作在7层。关于三者的简单对比,可以参考这里

    硬件负载均衡设备可以将核心部分做成芯片,性能和稳定性更好,而且商用产品的可管理性、文档和服务都比较好。唯一的问题就是价格。

    软件负载均衡通常是开源软件。自由度较高,但学习成本和管理成本会比较大。


    F5


    F5的全称是F5-BIG-IP-GTM,是最流行的硬件负载均衡设备,其并发能力达到百万级。F5的主要特性包括:

    1. 多链路的负载均衡和冗余

      可以接入多条ISP链路,在链路之间实现负载均衡和高可用。

    2. 防火墙负载均衡

      F5具有异构防火墙的负载均衡与故障自动排除能力。

    3. 服务器负载均衡

      这是F5最主要的功能,F5可以配置针对所有的对外提供服务的服务器配置Virtual Server实现负载均衡、健康检查、回话保持等。

    4. 高可用

      F5设备自身的冗余设计能够保证99.999%的正常运行时间,双机F5的故障切换时间为毫秒级。

      使用F5可以配置整个集群的链路冗余和服务器冗余,提高可靠的健康检查机制,以保证高可用。

    5. 安全性

      与防火墙类似,F5采用缺省拒绝策略,可以为任何站点增加额外的安全保护,防御普通网络攻击,包括DDoS、IP欺骗、SYN攻击、teartop和land攻击、ICMP攻击等。

    6. 易于管理

      F5提供HTTPS、SSH、Telnet、SNMP等多种管理方式,包含详尽的实时报告和历史纪录报告。同时还提供二次开发包(i-Control)。

    7. 其他

      F5还提供了SSL加速、软件升级、IP地址过滤、带宽控制等辅助功能。


    LVS


    LVS(Linux Virtual Server, Linux虚拟服务器),是章文嵩博士开发的开放软件,目前已经集成到Linux内核中。

    基于不同的网络技术,LVS支持多种负载均衡机制。包括:VS/NAT(基于网络地址转换技术)、VS/TUN(基于IP隧道技术)和VS/DR(基于直接路由技术)。

    此外,为了适应不同的需要,淘宝开发了VS/FULLNAT,从本质上来说也是基于网络地址转换技术。最近还有一个基于VS/FULLNAT的DNAT模块。

    不管使用哪种机制,LVS都不直接处理请求,而是将请求转发到后面真正的服务器(Real Server)。不同的机制,决定了响应包如何返回到客户端。


    VS/NAT


    NAT(Network Address Translation,网络地址转换)也叫做网络掩蔽或者IP掩蔽,是将IP 数据包头中的IP 地址转换为另一个IP 地址的过程。

    NAT能够将私有(保留)地址转化为合法IP地址,通常用于一个公共IP地址和多个内部私有IP地址直接的映射,广泛应用于各种类型Internet接入方式和各种类型的网络中。

    通过使用NAT将目的地址转换到多个服务器的方式,可以实现负载均衡,同时能够隐藏并保护内部服务器,避免来自网络外部的攻击。商用负载均衡设备如Cisco的LocalDirector、F5的Big/IP和Alteon的ACEDirector都是基于NAT方法。

    VS/NAT(Virtual Server via Network Address Translation)是基于NAT技术实现负载均衡的方法。其架构如下图所示:


    1. 客户通过Virtual IP Address(虚拟服务的IP地址)访问网络服务时,请求报文到达调度器
    2. 调度器根据连接调度算法从一组真实服务器中选出一台服务器,将报文的目标地址Virtual IP Address改写成选定服务器的地址,报文的目标端口改写成选定服务器的相应端口,最后将修改后的报文发送给选出的服务器。

    3. 真实的服务器处理请求,并将响应报文发到调度器。

    4. 调度器将报文的源地址和源端口改为Virtual IP Address和相应的端口
    5. 调度器将修改过的报文发给用户

    在VS/NAT的集群系统中,请求和响应的数据报文都需要通过负载调度器,当真实服务器的数目在10台和20台之间时,负载调度器将成为整个集群系统的新瓶颈。大多数Internet服务都有这样的特点:请求报文较短而响应报文往往包含大量的数据。如果能将请求和响应分开处理,即在负载调度器中只负责调度请求而响应直接返回给客户,将极大地提高整个集群系统的吞吐量。比如IP隧道技术。


    VS/TUN


    IP Tunneling(IP隧道)技术,又称为IP封装技术(IP encapsulation),是一种在网络之间传递数据的方式。可以将一个IP报文封装到另一个IP报文(可能是不同的协议)中,并转发到另一个IP地址。IP隧道主要用于移动主机和虚拟私有网络(Virtual Private Network),在其中隧道都是静态建立的,隧道一端有一个IP地址,另一端也有唯一的IP地址。

    VS/TUN(Virtual Server via IP Tunneling)是基于隧道技术实现负载均衡的方法。其架构如下图所示:


    VS/TUN与VS/NAT的工作机制大体上相同,区别在于:

    1. 调度器转发报文的时候进行了协议的二次封装,真实的服务器接收到请求后先进行解包。过程如下图所示:


    2. 响应报文从后端服务器直接返回给客户,不需要经过调度器。


    VS/DR


    DR(Direct Routing, 直接路由), 路由器学习路由的方法之一。路由器对于自己的网络接口所直连的网络之间的通信,可以自动维护路由表,而且不需要进行路由计算。

    直接路由通常用在一个三层交换机连接几个VLAN的情况,只要设置直接路由VLAN之间就可以通信,不需要设置其他的路由方式。

    VS/DR(Virtual Server via Direct Routing)是基于直接路由实现负载均衡的方法。其架构如下图所示:


    跟VS/TUN方法相同,VS/DR利用大多数Internet服务的非对称特点,负载调度器中只负责调度请求,而服务器直接将响应返回给客户,可以极大地提高整个集群系统的吞吐量。

    VS/DR要求调度器和服务器组都必须在物理上有一个网卡通过不分段的局域网相连,即通过交换机或者高速的HUB相连,中间没有隔有路由器。VIP地址为调度器和服务器组共享,调度器配置的VIP地址是对外可见的,用于接收虚拟服务的请求报文;所有的服务器把VIP地址配置在各自的Non-ARP网络设备上,它对外面是不可见的,只是用于处理目标地址为VIP的网络请求。

    VS/DR的整个过程与VS/TUN非常类似,不同之处在于调度器不对请求包进行二次封装,只是将目标MAC地址更改为经过调度算法选出的目标服务器的MAC地址。如下图:



    三种方法的优缺点比较


    VS/NAT

    • 优点

      • 对后端服务器的操作系统无要求
      • 只需要一个IP地址配置在调度器上,服务器组可以用私有的IP地址。
      • 支持端口映射
    • 缺点

      • 请求和响应报文都需要通过调度器,伸缩能力有限(10+)
      • 要求服务器和调度器在同一个VLAN
      • 需要将服务器的默认网关指向调度器
      • 对于那些将IP地址或者端口号在报文数据中传送的网络服务,需要编写相应的应用模块来转换报文数据中的IP地址或者端口号

    VS/TUN

    • 优点

      • 不需要调度应答报文,性能高
      • 服务器和调度器可以不在同一个VLAN
      • 支持广域负载均衡
    • 缺点

      • 所有的服务器必须支持“IP Tunneling”协议,要安装内核模块(比如IPIP等),配置复杂
      • 有建立IP隧道的开销
      • 服务器上直接绑定虚拟IP(Virtaul IP),风险很大
      • 服务器需要联通外网
      • 不支持端口映射

    VS/DR

    • 优点

      • 与VS/TUN相比,没有IP隧道的开销,性能最好
    • 缺点

      • 要求调度器与服务器都有一块网卡连在同一物理网段(同一个VLAN)上
      • 要求服务器网络设备(或者设备别名)不作ARP响应,或者能将报文重定向(Redirect)到本地的Socket端口上
      • 服务器上直接绑定虚拟IP(Virtaul IP),风险很大
      • 不支持端口映射


    VS/FULLNAT


    如上节所述,前面三种传统的负载均衡机制各自存在一些不足。

    VS/FULLNAT是为了解决这些不足而新开发的一种转发模式。VS/FULLNAT的特点是:

    1. 调度器和服务器可以跨VLAN通信,不需要配置在同一个网段
    2. 请求和应答报文都经过调度器,服务器不需要绑定虚拟IP

    VS/FULLNAT这两个特点可以简化网络拓扑,降低运维成本和风险。


    如何选择


    1. 如果人少钱多,不在乎性能的损耗愿意多买服务器,同时希望最大程度较少运维的工作量,可以选择FULLNAT
    2. 很大众的方式是用DR,没有太多的优点但也没有太多的缺点
    3. 如果要搞广域网负载均衡,那就用TUN吧
    4. 个人感觉NAT不是为了互联网用的。小并发的实验性应用或者用在非web场合,比如mysql集群等。当然,如果需要端口映射,必须使用NAT方式

    本文转自:

    http://thinkinside.tk/2013/06/03/lb_solutions_list.html

    http://thinkinside.tk/2013/06/02/lvs_lb_strategy.html

    展开全文
  • web负载均衡

    2017-01-19 10:37:45
    摘要: 负载均衡(Load Balance)是...根据实现的原理不同,常见的web负载均衡技术包括:DNS轮询、IP负载均衡和CDN。其中IP负载均衡可以使用硬件设备或软件方式来实现。 什么是web负载均衡

    摘要:


    负载均衡(Load Balance)是集群技术(Cluster)的一种应用。负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力。目前最常见的负载均衡应用是Web负载均衡。根据实现的原理不同,常见的web负载均衡技术包括:DNS轮询、IP负载均衡和CDN。其中IP负载均衡可以使用硬件设备或软件方式来实现。


    什么是web负载均衡


    服务器集群(Cluster)使得多个服务器节点能够协同工作,根据目的的不同,服务器集群可以分为:

    • 高性能集群:将单个重负载的请求分散到多个节点进行处理,最后再将处理结果进行汇总
    • 高可用集群:提高冗余单元,避免单点故障
    • 负载均衡集群:将大量的并发请求分担到多个处理节点。由于单个处理节点的故障不影响整个服务,负载均衡集群同时也实现了高可用性。

    一般提到的负载均衡(Load Balance),是指实现负载均衡集群。负载均衡实现了横向扩展(Scale Out),避免纵向的升级(Scale Up)换代。

    本文中的web负载均衡,特指能够分担web请求(http,https等)的负载均衡技术。


    基本原理


    任何的负载均衡技术都要想办法建立某种一对多的映射机制:一个请求的入口映射到多个处理请求的节点,从而实现分而治之(Divide and Conquer)。

    这种映射机制使得多个物理存在对外体现为一个虚拟的整体,对服务的请求者屏蔽了内部的结构。

    采用不同的机制建立映射关系,可以形成不同的负载均衡技术,常见的包括:

    • DNS轮询
    • CDN
    • IP负载均衡


    DNS


    DNS轮询是最简单的负载均衡方式。以域名作为访问入口,通过配置多条DNS A记录使得请求可以分配到不同的服务器。

    DNS轮询没有快速的健康检查机制,而且只支持WRR的调度策略导致负载很难“均衡”,通常用于要求不高的场景。并且DNS轮询方式直接将服务器的真实地址暴露给用户,不利于服务器安全。

    CDN

    CDN(Content Delivery Network,内容分发网络)。通过发布机制将内容同步到大量的缓存节点,并在DNS服务器上进行扩展,找到里用户最近的缓存节点作为服务提供节点。

    因为很难自建大量的缓存节点,所以通常使用CDN运营商的服务。目前国内的服务商很少,而且按流量计费,价格也比较昂贵。


    IP负载均衡


    IP负载均衡是基于特定的TCP/IP技术实现的负载均衡。比如NAT、DR、Turning等。是最经常使用的方式。关于其原理,可以参考下面另一篇文章:lvs中的负载均衡方式

    IP负载均衡可以使用硬件设备,也可以使用软件实现。硬件设备的主要产品是F5-BIG-IP-GTM(简称F5),软件产品主要有LVS、HAProxy、NginX。其中LVS、HAProxy可以工作在4-7层,NginX工作在7层。关于三者的简单对比,可以参考这里

    硬件负载均衡设备可以将核心部分做成芯片,性能和稳定性更好,而且商用产品的可管理性、文档和服务都比较好。唯一的问题就是价格。

    软件负载均衡通常是开源软件。自由度较高,但学习成本和管理成本会比较大。


    F5


    F5的全称是F5-BIG-IP-GTM,是最流行的硬件负载均衡设备,其并发能力达到百万级。F5的主要特性包括:

    1. 多链路的负载均衡和冗余

      可以接入多条ISP链路,在链路之间实现负载均衡和高可用。

    2. 防火墙负载均衡

      F5具有异构防火墙的负载均衡与故障自动排除能力。

    3. 服务器负载均衡

      这是F5最主要的功能,F5可以配置针对所有的对外提供服务的服务器配置Virtual Server实现负载均衡、健康检查、回话保持等。

    4. 高可用

      F5设备自身的冗余设计能够保证99.999%的正常运行时间,双机F5的故障切换时间为毫秒级。

      使用F5可以配置整个集群的链路冗余和服务器冗余,提高可靠的健康检查机制,以保证高可用。

    5. 安全性

      与防火墙类似,F5采用缺省拒绝策略,可以为任何站点增加额外的安全保护,防御普通网络攻击,包括DDoS、IP欺骗、SYN攻击、teartop和land攻击、ICMP攻击等。

    6. 易于管理

      F5提供HTTPS、SSH、Telnet、SNMP等多种管理方式,包含详尽的实时报告和历史纪录报告。同时还提供二次开发包(i-Control)。

    7. 其他

      F5还提供了SSL加速、软件升级、IP地址过滤、带宽控制等辅助功能。


    LVS


    LVS(Linux Virtual Server, Linux虚拟服务器),是章文嵩博士开发的开放软件,目前已经集成到Linux内核中。

    基于不同的网络技术,LVS支持多种负载均衡机制。包括:VS/NAT(基于网络地址转换技术)、VS/TUN(基于IP隧道技术)和VS/DR(基于直接路由技术)。

    此外,为了适应不同的需要,淘宝开发了VS/FULLNAT,从本质上来说也是基于网络地址转换技术。最近还有一个基于VS/FULLNAT的DNAT模块。

    不管使用哪种机制,LVS都不直接处理请求,而是将请求转发到后面真正的服务器(Real Server)。不同的机制,决定了响应包如何返回到客户端。


    VS/NAT


    NAT(Network Address Translation,网络地址转换)也叫做网络掩蔽或者IP掩蔽,是将IP 数据包头中的IP 地址转换为另一个IP 地址的过程。

    NAT能够将私有(保留)地址转化为合法IP地址,通常用于一个公共IP地址和多个内部私有IP地址直接的映射,广泛应用于各种类型Internet接入方式和各种类型的网络中。

    通过使用NAT将目的地址转换到多个服务器的方式,可以实现负载均衡,同时能够隐藏并保护内部服务器,避免来自网络外部的攻击。商用负载均衡设备如Cisco的LocalDirector、F5的Big/IP和Alteon的ACEDirector都是基于NAT方法。

    VS/NAT(Virtual Server via Network Address Translation)是基于NAT技术实现负载均衡的方法。其架构如下图所示:


    1. 客户通过Virtual IP Address(虚拟服务的IP地址)访问网络服务时,请求报文到达调度器
    2. 调度器根据连接调度算法从一组真实服务器中选出一台服务器,将报文的目标地址Virtual IP Address改写成选定服务器的地址,报文的目标端口改写成选定服务器的相应端口,最后将修改后的报文发送给选出的服务器。

    3. 真实的服务器处理请求,并将响应报文发到调度器。

    4. 调度器将报文的源地址和源端口改为Virtual IP Address和相应的端口
    5. 调度器将修改过的报文发给用户

    在VS/NAT的集群系统中,请求和响应的数据报文都需要通过负载调度器,当真实服务器的数目在10台和20台之间时,负载调度器将成为整个集群系统的新瓶颈。大多数Internet服务都有这样的特点:请求报文较短而响应报文往往包含大量的数据。如果能将请求和响应分开处理,即在负载调度器中只负责调度请求而响应直接返回给客户,将极大地提高整个集群系统的吞吐量。比如IP隧道技术。


    VS/TUN


    IP Tunneling(IP隧道)技术,又称为IP封装技术(IP encapsulation),是一种在网络之间传递数据的方式。可以将一个IP报文封装到另一个IP报文(可能是不同的协议)中,并转发到另一个IP地址。IP隧道主要用于移动主机和虚拟私有网络(Virtual Private Network),在其中隧道都是静态建立的,隧道一端有一个IP地址,另一端也有唯一的IP地址。

    VS/TUN(Virtual Server via IP Tunneling)是基于隧道技术实现负载均衡的方法。其架构如下图所示:


    VS/TUN与VS/NAT的工作机制大体上相同,区别在于:

    1. 调度器转发报文的时候进行了协议的二次封装,真实的服务器接收到请求后先进行解包。过程如下图所示:


    2. 响应报文从后端服务器直接返回给客户,不需要经过调度器。


    VS/DR


    DR(Direct Routing, 直接路由), 路由器学习路由的方法之一。路由器对于自己的网络接口所直连的网络之间的通信,可以自动维护路由表,而且不需要进行路由计算。

    直接路由通常用在一个三层交换机连接几个VLAN的情况,只要设置直接路由VLAN之间就可以通信,不需要设置其他的路由方式。

    VS/DR(Virtual Server via Direct Routing)是基于直接路由实现负载均衡的方法。其架构如下图所示:


    跟VS/TUN方法相同,VS/DR利用大多数Internet服务的非对称特点,负载调度器中只负责调度请求,而服务器直接将响应返回给客户,可以极大地提高整个集群系统的吞吐量。

    VS/DR要求调度器和服务器组都必须在物理上有一个网卡通过不分段的局域网相连,即通过交换机或者高速的HUB相连,中间没有隔有路由器。VIP地址为调度器和服务器组共享,调度器配置的VIP地址是对外可见的,用于接收虚拟服务的请求报文;所有的服务器把VIP地址配置在各自的Non-ARP网络设备上,它对外面是不可见的,只是用于处理目标地址为VIP的网络请求。

    VS/DR的整个过程与VS/TUN非常类似,不同之处在于调度器不对请求包进行二次封装,只是将目标MAC地址更改为经过调度算法选出的目标服务器的MAC地址。如下图:



    三种方法的优缺点比较


    VS/NAT

    • 优点

      • 对后端服务器的操作系统无要求
      • 只需要一个IP地址配置在调度器上,服务器组可以用私有的IP地址。
      • 支持端口映射
    • 缺点

      • 请求和响应报文都需要通过调度器,伸缩能力有限(10+)
      • 要求服务器和调度器在同一个VLAN
      • 需要将服务器的默认网关指向调度器
      • 对于那些将IP地址或者端口号在报文数据中传送的网络服务,需要编写相应的应用模块来转换报文数据中的IP地址或者端口号

    VS/TUN

    • 优点

      • 不需要调度应答报文,性能高
      • 服务器和调度器可以不在同一个VLAN
      • 支持广域负载均衡
    • 缺点

      • 所有的服务器必须支持“IP Tunneling”协议,要安装内核模块(比如IPIP等),配置复杂
      • 有建立IP隧道的开销
      • 服务器上直接绑定虚拟IP(Virtaul IP),风险很大
      • 服务器需要联通外网
      • 不支持端口映射

    VS/DR

    • 优点

      • 与VS/TUN相比,没有IP隧道的开销,性能最好
    • 缺点

      • 要求调度器与服务器都有一块网卡连在同一物理网段(同一个VLAN)上
      • 要求服务器网络设备(或者设备别名)不作ARP响应,或者能将报文重定向(Redirect)到本地的Socket端口上
      • 服务器上直接绑定虚拟IP(Virtaul IP),风险很大
      • 不支持端口映射


    VS/FULLNAT


    如上节所述,前面三种传统的负载均衡机制各自存在一些不足。

    VS/FULLNAT是为了解决这些不足而新开发的一种转发模式。VS/FULLNAT的特点是:

    1. 调度器和服务器可以跨VLAN通信,不需要配置在同一个网段
    2. 请求和应答报文都经过调度器,服务器不需要绑定虚拟IP

    VS/FULLNAT这两个特点可以简化网络拓扑,降低运维成本和风险。


    如何选择


    1. 如果人少钱多,不在乎性能的损耗愿意多买服务器,同时希望最大程度较少运维的工作量,可以选择FULLNAT
    2. 很大众的方式是用DR,没有太多的优点但也没有太多的缺点
    3. 如果要搞广域网负载均衡,那就用TUN吧
    4. 个人感觉NAT不是为了互联网用的。小并发的实验性应用或者用在非web场合,比如mysql集群等。当然,如果需要端口映射,必须使用NAT方式
    展开全文
  • Web负载均衡 2020

    2018-06-12 18:50:14
    Web负载均衡
  • web 负载均衡

    2015-01-20 17:28:02
    1.http 重定向负载均衡 HTTP 重定向服务器是一台普通的应用服务器,其唯一的功能就是根据用户的http请求计算一台真实的WEB服务器的地址,并讲改web 服务器的地址写入http重定向的响应中(响应状态码302) 返回给用户...

    1.http 重定向负载均衡

    HTTP 重定向服务器是一台普通的应用服务器,其唯一的功能就是根据用户的http请求计算一台真实的WEB服务器的地址,并讲改web 服务器的地址写入http重定向的响应中(响应状态码302) 返回给用户浏览器,  在 图中,浏览器请求域名www.mysite.com,NDS 服务器解析得到IP 114.100.80.10 即http重定向服务器的IP地址,服务器根据某种负载均衡算法的带一台实际无聊服务器的地址(114.100.80.3)构造一个包含该实际物理服务器的地址的重定向响应返回给浏览器,浏览器自动重新请求实际物理服务器的ip 地址 114.100.80.3 完成访问


    这种负载均衡的方案优点是比较简单,缺点是浏览器需要两次请求服务器才能完成一次访问,性能交差,重定向服务器自身的处理能力有可能成为瓶颈,整个集群的伸缩性规模有限,使用http  302 响应码重定向有可能是搜索引擎判断为seo作弊,降低搜索排名,因此实践中使用这种方案进行负载均衡的案例并不多见


    2. DNS 域名解析负载均衡

     这事利用DNS 处理解析域名请求同事进行负载均衡处理的一种方案,在DNS服务器中配置多个A记录,如 www.mysite,com in A  114.100.80.1,www.mysite,com in B  114.100.80.2,www.mysite,com in C  114.100.80.3


     每次域名解析请求都会根据负载均衡算法实现一个不同的IP返回,资源A记录总的多个服务器就构成一个集群,并可以实现负载均衡,如图,浏览器请求解析域名www,mysite.com  DNS 根据A激励和负载均衡是否计算的带一个IP地址114.100.80.3  并返回给浏览器,浏览器根据该IP地址,访问真实的物理服务器114.100.80.3 

      DNS 域名解析负载均衡的优点是讲负载均衡的工作交个DNS 省掉了网站管理维护负载均衡服务器的麻烦,同事许多DNS还支持基于地址位置的域名解析,这样可以加快用户访问速度改善性能,但是DNS域名解析负载均衡也有缺点,就是目前的DNS是多级解析,每一层DNS都可能缓存A记录,当下线某台服务器后,即修改了DNS 的A记录,要使其生效也需要较长的时间,这段时间DNS依然会将域名解析到已经下线的服务器,导致用户访问失败,而且DNS 负载均衡的 控制权在域名服务商哪里,网站无法对其做更多改善和更强大的管理。

    事实上,大型网站总是部分使用DNS域名解析,利用域名解析作为第一级负载均衡手段,基于名解析得到的一组服务器并不是实际提供web服务的无力服务器,而是同样提供 负载均衡服务的内部服务器,这组内部负载均衡服务器在进行负载均衡,将请求分发到真实web服务器上。


    3. 反向代理负载均衡

    利用反相代理均衡服务器进行负载均衡,前面我们提到利用法相代理缓存资源,以改善网站性能。实际上,在部署位置上,发想代理服务器处于web服务器前面(这样才可能缓存wen响应,加速访问),这个位置也正好是负载均衡服务器的位置,所以大多数方向服务器同时提供负载均衡的功能,管理一组web服务器,将请求根据负载均衡算法转发到不停web服务器上,web服务器不直接岁外提供访问,因此web服务器不需要使用外部ip地址,而反相代理服务器则需要配置双网卡和内部外部两套IP地址。

    浏览器访问请求的地址是反向代理服务器的地址114.100.80.10,反向代理服务器收到请求后,根据负载均衡算法计算得到一台真实物理服务器的地址10.0.0.3,并将请求转发给服务器,10.0.0.3处理完请求后将返回给反向带你服务器,反向代理服务器再将该响应返回给用户。

    由于反向代理服务器转发请求在HTTP协议层里,因此也叫应用层负载均衡。其有点是和反向带你服务器功能集成在一起,部署简单。缺点是反向代理服务器是所有请求和响应的中转站,其性能可能会成为 瓶颈。


    4. ip负载均衡

    在网站层通过修改请求目标地址进行负载均衡,用户请求数据包到达负载均衡服务器114.100.80.10后,负载均衡服务器再操作西戎内核进程获取网络数据包,根据负载均衡算法计算得到一台真实web服务器10.0.0.1,然后将数据目的IP地址修改为10.0.0.1,不需要通过用户进程处理。真实web应用服务器处理完成后,响应数据包到均衡服务器,负载均衡服务器再将数据包源地址修改为自身的IP地址(114.100.80.10)发送到用户浏览器。

    这里的关键在于真实物理web服务器响应数据包如何返回给负载均衡服务器。一种方案是负载均衡服务器再修改目的IP地址的同时修改源地址,将数据包源地址设为自身ip,即源地址转换(SNAT),这样web服务器的响应会 再回到负载均衡服务器;另一种方案是将负载均衡服务器同时作为真实物理服务器集群的网关3服务器,这样所有响应数据都会到达负载均衡服务器。

    ip负载均衡在内核进程完成数据分发,较反向代理负载均衡(在应用程序中分发数据)有更好的处理性能。但是由于所有请求响应都需要经过负载均衡服务器,集群的最大响应数据吞吐量不得不受制于负载均衡服务器网卡带宽。对于提供下载服务器或者视频服务器等需要大量数据的网站而言,难以满足需求。能不能让负载服务器只分发请求,而使响应数据从真实物理服务器直接返回给用户呢?

    5. 数据链路层负载均衡

    顾名思义,数据链路层负载均衡是指在通信协议的数据链路层修改mac地址进行负载均衡。这种数据传输方式又称作三角传输模式,负载均衡数据分发过正中不修改ip地址,只修改目的mac地址,通过配置真实物理服务器集群所有机器虚拟ip和负载均衡服务器由于实际处理请求的真实物理服务器ip和数据请求目的ip一致,不需要通过负载均衡服务带宽成为瓶颈。这种负载均衡方式又称作直接路由方式(DR)。

    用户请求到达负载均衡服务器114.100.80.10后,负载均衡服务器将请求数据的目的mac地址修改为00:0c:29:d2,并不修改数目包目标ip地址,由于web服务器到达mac地址00:00c:29:d2对应的服务器,该服务器处理完成后发送响应数据到网站的网关服务器,网关服务器直接将该数据包发送到用户浏览器(通过互联网),响应数据不需要通过负载均衡服务器。

    使用三角传输模式的链路层负载均衡是目前大型网站使用最广的一种堵在均衡手段。在Linux平台上最好的链路层负载均衡开源产品是lvs(Linux virtual server)


    展开全文
  • Web 负载均衡

    2010-09-25 18:12:18
    1. HTTP 重定向 2. DNS 负载均衡 3. 反向代理负载均衡 4. IP 负载均衡 5. 直接路由 6. IP 隧道
    1. HTTP 重定向
    2. DNS 负载均衡
    3. 反向代理负载均衡
    4. IP 负载均衡
    5. 直接路由
    6. IP 隧道
    展开全文
  • 目前最常见的负载均衡应用是Web负载均衡。根据实现的原理不同,常见的web负载均衡技术包括:DNS轮询、IP负载均衡和CDN。其中IP负载均衡可以使用硬件设备或软件方式来实现。 一、什么是web负载均衡 服务器集群...
  • 关于Web负载均衡

    2019-08-29 18:29:24
    Web负载均衡 Web负载均衡(Load Balancing),简单地说就是给我们的服务器集群分配“工作任务”,而采用恰当的分配方式,对于保护处于后端的Web服务器来说,非常重要。 负载均衡的策略有很多,我们从简单的讲起哈。...
  • Web负载均衡技术

    2018-11-15 17:41:00
    Web负载均衡(Load Balancing),简单地说就是给我们的服务器集群分配“工作任务”,而采用恰当的分配方式,对于保护处于后端的Web服务器来说,非常重要。 负载均衡的策略有很多,我们从简单的讲起哈。 1.HTTP...
  • Web负载均衡的几种实现方式摘要:负载均衡(Load Balance)是集群技术(Cluster)的一种应用。负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力。目前最常见的负载均衡应用是Web负载均衡。根据实现的...
  • Keepalived+Nginx实现高可用Web负载均衡
  • 企业级web负载均衡完美架构,本内容主要涉及企业应用下的负载均衡的搭建,希望对大家思路有帮助
  • Web负载均衡的几种实现方式 摘要:负载均衡(Load Balance)是集群技术(Cluster)的一种应用。负载均衡可以将工作任务分摊到多个处理单元,从而提高并发处理能力。目前最常见的负载均衡应用是Web负载均衡。根据实现...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,100
精华内容 6,840
关键字:

web负载均衡