• HAProxy实现负载均衡


    目录

    一、HAProxy介绍

    二、环境准备

    三、实验拓扑

    四、HAProxy部署

    五、配置HAProxy状态页面


    一、HAProxy介绍

            ha-proxy是一款高性能的负载均衡软件,主要是做7层负载均衡,也可以做4层负载均衡。因为其专注于负载均衡这一些事情,因此与nginx比起来在负载均衡这件事情上做更好,更专业。ha-proxy 作为目前流行的负载均衡软件,必须有其出色的一面。ha-proxy相对LVS、Nginx等负载均衡软件的优点。

    • 支持tcp / http 两种协议层的负载均衡,使得其负载均衡功能非常丰富。
    • 支持8种左右的负载均衡算法,尤其是在http模式时,有许多非常实在的负载均衡算法,适用各种需求。
    • 性能非常优秀,基于单进程处理模式(和Nginx类似)让其性能卓越。
    • 拥有一个功能出色的监控页面,实时了解系统的当前状况。
    • 功能强大的ACL支持,给用户极大的方便。

    LVS、HAPorxy、Nginx对比:

    负载均衡性能:LVS > HAProxy > Nginx

    能性和便利性:Nginx>HA>LVS

            对于一个大型后台系统来说,LVS、HAProxy和Nginx常常可以配合使用在不同的层级,LVS用在接入层的最前端,承担最大规模的流量分发;HAProxy负责按域名分流;而Nginx只需要作为Web服务器负责单机内多实例的负载均衡,或负责目录结构分流和静态资源缓存等需求。

    haproxy算法:
    (1)roundrobin:基于权重进行轮询,在服务器的处理时间保持均匀分布时,这是最平衡,最公平的算法.此算法是动态的,这表示其权重可以在运行时进行调整.
    (2)static-rr:基于权重进行轮询,与roundrobin类似,但是为静态方法,在运行时调整其服务器权重不会生效.不过,其在后端服务器连接数上没有限制
    (3)leastconn:新的连接请求被派发至具有最少连接数目的后端服务器.

    二、环境准备

    服务器主机名IP备注
    HAProxy服务器haproxy

    ens33:192.168.2.10(内网)

    ens38:192.168.1.10(外网)

    关闭selinux和firewalld
    Web1网站服务器web1ens33:192.168.2.20(内网)关闭selinux和firewalld
    Web2网站服务器web2ens33:192.168.2.30(内网)关闭selinux和firewalld

    三、实验拓扑

     

    四、HAProxy部署

    1. #haproxy主机安装
    2. yum install haproxy -y
    3. #编辑配置文件
    4. vim /etc/haproxy/haproxy.cfg #在文末新增如下内容
    1. listen websrv *:80 #本地集群监听端口,websrv为自定义名称,客户端访问192.168.1.10:80为转发到下面设置的集群节点IP和端口
    2. balance roundrobin #使用轮询,也是默认算法,可以不写;leastconn为最小连接算法名
    3. server web1 192.168.2.20:80 check inter 2000 rise 2 fall 5 #节点1,web1为自定义节点名,check为打开健康检查,inter为健康检查时间间隔,fall为几次健康检查失败就认为节点挂了,rise为节点恢复后,健康检查通过几次后,才认为该服务器真正恢复。
    4. server web2 192.168.2.30:80 check inter 2000 rise 2 fall 5 #节点2
    1. #启动服务
    2. systemctl start haproxy

    客户端测试:

     

    五、配置HAProxy状态页面

    vim /etc/haproxy/haproxy.cfg   #文末额外增加如下内容
    1. listen stats *:1080 #监听端口,stats为自定义名称
    2. stats refresh 30s #统计页面自动刷新时间
    3. stats uri /stats #统计页面url,可自定义,访问的时候使用的是该处设置的地址即可
    4. stats realm Haproxy Manager #进入管理界面查看状态信息
    5. stats auth admin:admin #统计页面用户名和密码设置
    systemctl restart haproxy

     参数说明:

    • Queue队列数据的信息(当前队列数量,最大值,队列限制数量);
    • Session rate每秒会话率(当前值,最大值,限制数量);
    • Sessions总会话量(当前值,最大值,总量,Lbtot:total number of times a server was selected选中一台服务器所用的总时间);
    • Bytes(入站,出站流量);
    • Denied(拒绝请求、拒绝回应);
    • Errors(错误请求、错误连接、错误回应);
    • Warnings(重新尝试警告retry,重新连接redispatches);
    • Server(状态、最后检查时间(多久前执行的最后一次检查)、权重、备份服务器数量、down机服务器数量,down机时长);

  • 相关阅读:
    N字型变换
    全球手机一哥再度回归国内市场,国产手机品牌怕了么?
    Node.js 实战 第1章 欢迎进入Node.js 的世界 1.4 Node 自带的工具 1.4.1 npm
    【Linux】Ubuntu设置自动登录图形界面和远程shell
    BFS——武士风度的牛
    “构建交互式用户界面的自定义组件应用与界面布局设置“
    06_SHELL编程之文本处理工具AWK
    如何使用B/S开发工具DevExtreme的图表控件 - 自定义轴位置?
    【基于国产openEuler操作系统手动安装openLooKeng1.10.0单机版】
    java jdk1.8.0_221 安装步骤
  • 原文地址:https://blog.csdn.net/qq_28903377/article/details/127955147