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部署

#haproxy主机安装
yum install haproxy -y

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

客户端测试:

 

五、配置HAProxy状态页面

vim /etc/haproxy/haproxy.cfg   #文末额外增加如下内容
listen stats *:1080        #监听端口,stats为自定义名称
    stats refresh 30s      #统计页面自动刷新时间
    stats uri /stats       #统计页面url,可自定义,访问的时候使用的是该处设置的地址即可
    stats realm Haproxy Manager     #进入管理界面查看状态信息
    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机时长);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

桂安俊@kylinOS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值