美文网首页
Nginx、HAProxy、LVS三者的对比

Nginx、HAProxy、LVS三者的对比

作者: August________ | 来源:发表于2019-11-25 00:27 被阅读0次

    Nginx、HAProxy、LVS三者的对比

    nignx

    优点:

    • 工作在网络7层,针对http做分流策略,支持正则
    • 配置简单,方便
    • 对网络的依赖性小,一般可以ping通就可以进行负载
    • 可以通过端口检查到服务器内部故障,根据网页的返回的状态码,将返回错误的请求重新提交到另一个节点上

    缺点

    • 应用范围较小,仅支持http、https、Email协议

    LVS

    优点

    • 工作在网络4层
    • 抗负载能力强,可以支持双机热备份:LVS+keepalived的
    • 支持多种负载均衡算法:rr(轮询),wrr(带权轮询)、lc(最小连接)、wlc(带权最小连接)
    • LVS工作模式有4种:
      (1) nat 地址转换
      (2) dr 直接路由
      (3) tun 隧道
      (4) full-nat

    缺点

    • 软件本身不支持正则表达式

    haproxy

    优点

    • 可以工作在4、7层
    • 支持Session的保持,Cookie的引导
    • 单纯从效率上来讲HAProxy会比Nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的。
    • 4、HAProxy支持TCP协议的负载均衡转发,可以对MySQL读进行负载均衡,对后端的MySQL节点进行检测和负载均衡,大家可以用LVS+Keepalived对MySQL主从做负载均衡。

    三大主流软件负载均衡器适用业务场景

    1. 网站建设初期,可以选用Nginx、HAProxy作为反向代理负载均衡(流量不大时,可以不选用负载均衡),因为其配置简单,性能也能满足一般业务场景。如果考虑到负载均衡器是有单点问题,可以采用Nginx+Keepalived/HAproxy+Keepalived避免负载均衡器自身的单点问题。
    2. 网站并发到达一定程度后,为了提高稳定性和转发效率,可以使用lvs,毕竟lvs比Nginx/HAProxy要更稳定,转发效率也更高。
    注:nginx与HAProxy比较:nginx只支持七层,用户量最大,稳定性比较可靠。Haproxy支持四层和七层,支持更多的负载均衡算法,支持session等。
    

    haproxy+keepalived高可用负载均衡构建。

    • 用haproxy构建群集的时候,比如后方代理两个http,如果haproxy宕机,后方的http正常运行网站也是瘫痪状态,这就造成了单点故障。
    • 这时keepalived就登场了,keepalived基于vrrp协议,两台主机之间生成一个虚拟的ip,我们称漂移ip,漂移ip由主服务器承担,一但主服务器宕机,备份服务器就会抢占漂移ip,继续工作,有效的解决了群集中的单点故障

    keepalived

    • 配置文件/etc/keepalived/keepalived.conf
    • vrrp_instance VI_1分区里
      • state MASTER为主分区
      • state BACKUP为备份分区
    • priority设置优先级
    • virtual_ipaddress: 设置浮动IP

    HAproxy

    • 配置文件再/etc/haproxy/haproxy.cfg
    • frontend http_fort:定义监听服务器浮动IP及端口
    • backend http_back: 定义调度的IP服务器

    mencached实现session共享

    • cookie与session的区别

      • cookie是位于用户的计算机上的,用来维护用户计算机的信息
      • session位于web服务器上的,主要负责访问者与网站的交互
      • cookie数据存放在客户的浏览器上,session数据放在服务器上

    [高可用Mysql架构_Haproxy+keepalived+mycat集群的配置]

    图解说明:
    (1) HAProxy 实现了 Mycat 多节点的集群高可用和负载均衡, 而 HAProxy 自身的高可用则可以通过Keepalived 来实现。 因此, HAProxy 主机上要同时安装 HAProxy 和 Keepalived, Keepalived 负责为该服务器抢占 vip(虚拟 ip,图中的 192.168.9.190),抢占到 vip 后,对该主机的访问可以通过原来的 ip(192.168.9.174)访问,也可以直接通过 vip(192.168.9.190)访问。
    (2) Keepalived 抢占 vip 有优先级, 在 keepalived.conf 配置中的 priority 属性决定。但是一般哪台主机上的 Keepalived服务先启动就会抢占到 vip,即使是 slave,只要先启动也能抢到(要注意避免 Keepalived的资源抢占问题)。
    (3) HAProxy 负责将对 vip 的请求分发到 Mycat 集群节点上, 起到负载均衡的作用。 同时 HAProxy 也能检测到 Mycat 是否存活, HAProxy 只会将请求转发到存活的 Mycat 上。
    (4) 如果 Keepalived+HAProxy 高可用集群中的一台服务器宕机, 集群中另外一台服务器上的 Keepalived会立刻抢占 vip 并接管服务, 此时抢占了 vip 的 HAProxy 节点可以继续提供服务。
    (5) 如果一台 Mycat 服务器宕机, HAPorxy 转发请求时不会转发到宕机的 Mycat 上,所以 Mycat 依然可用。
    综上: Mycat 的高可用及负载均衡由 HAProxy 来实现,而 HAProxy 的高可用,由 Keepalived 来实现。

    相关文章

      网友评论

          本文标题:Nginx、HAProxy、LVS三者的对比

          本文链接:https://www.haomeiwen.com/subject/exarwctx.html