HAProxy虽然名字前有HA,但它并不是一款高可用软件,而是一款用于实现负载均衡的软件,可实现四层与七层的负载均衡。
关于haproxy的常用调度算法,可以参考博文:Haproxy支持的调度算法。
haproxy的详细配置过程和配置日志记录,可以参考博文:keepalived+Haproxy搭建高可用Web群集。
这篇博文不谈如何配置haproxy,主要来聊一下它的配置文件说明以及生产环境中的参数调优。
haproxy的配置文件通常分为三个部分:global、defaults和listen。依次为全局配置、默
认配置、应用组件配置。
global配置:
global
log 127.0.0.1 local #配置日志记录,local0为日志设备,默认存放到系统日志
log 127.0.0.1 local1 notice #notice为日志级别,通常有24个级别
#log loghost local0 info
maxconn 4096 #最大连接数
chroot /usr/share/haproxy #该服务自设置的根目录,一般需将此行注释掉
uid 99 #用户UID
gid 99 #用户GID
daemon #守护进程模式
defaults配置项配置默认参数,一般会被应用组件继承,如果在应用组件中没有特别的声明,将安装默认配置参数:
defaults
log global #定义日志为global配置中的日志定义
mode http #模式为http
option httplog #采用http日志格式记录日志
option dontlognull
retries 3 #检查节点服务器失败次数,连续达到三次失败,则认为节点不可用
redispatch #当服务器负载很高时,自动结束当前队列处理比较久的连接
maxconn 2000 #最大连接数
contimeout 5000 #连接超时时间
clitimeout 50000 #客户端超时时间
srvtimeout 50000 #服务器超时时间
listen配置项一般配置应用模块参数:
listen appli4-backup 0.0.0.0:10004 #定义一个名为appli4-backup的应用
option httpchk /index.html #检查服务器的index.html文件
option persist #强制将请求发送到已经down掉的服务器,一般禁用此选项。
balance roundrobin #负载均衡调度算法使用轮询算法
server inst1 192.168.114.56:80 check inter 2000 fall 3 #定义在线节点
server inst2 192.168.114.56:81 check inter 2000 fall 3 backup #定义备份节点
#注意:在以上定义备份节点的参数中,
#“check inter 2000”表示haproxy服务器和节点之间的一个心跳频率,
#“fall 3”表示连续三次检测不到心跳频率则认为该节点失效。
#节点配置后带有“ backup”表示该节点只是个备份节点,只有主节点失效该节点才会上。
#去除backup,表示为主节点,和其他主节点共同提供服务。
haproxy的负载均衡参数说明: