HAproxy配置参数说明

HAproxy配置参数说明:
根据功能用途不同,其配置文件主要由五个部分组成,分别为global部分,defaults部分,frontend部分,backend部分,listen部分

1)global部分
用于设置全局配置参数,属于进程级的配置,通常与操作系统配置相关

  1. defaults部分
    默认参数的配置部分。在些部分设置的参数,默认会自动引用到下面的frontend, backend和listen部分
  2. frontend部分
    用于设置接收用户请求的前端虚拟节点。frontend可以根据ACL规则直接指定要使用的后端backend
  3. backend部分
    用于设置集群后端服务集群的配置,也就是用来添加一组真实服务器,以处理前端用户的请求
  4. listen部分
    此部分是frontend和backend部分的结合体



1)global部分

global
    log 127.0.0.1 local1 info
    maxconn 4096
    user nobody
    group nobody
    daemon
    nbproc 1
    pidfile /usr/local/haproxy/logs/haproxy.pid 

log
全局的日志配置,local0是日志设备,info表示日志级别。其中日志级别有err, warning, info, debug 4种。这个配置表示使用127.0.0.1上的rsyslog服务中的local0日志设备,记录日志等级为info
maxconn
设置每个HAProxy进程可接受的最大并发连接数
nbproc
设置HAProxy启动时可创建的进程数,此参数要求将HAProxy运行模式设置为daemon,默认只启动一个进程;建议该值设置时小于CPU核数
daemon
设置HAProxy进程进入后台运行,这是推荐的运行模式
user/group
设置启动HAProxy进程的用户和组
pidfile
指定HAProxy进程ID的存放位置



  1. defaults部分
defaults 
        mode tcp
        retries 3
        timeout connect 10s
        timeout client 20s
        timeout server 30s
        timeout check 5s

mode
设置HAProxy实例默认的运行模式,有tcp, http, health三个可选值
tcp模式:
在此模式下,客户端和服务器端间将建立一个全双工的连接,不会对七层报文做任何检查,为默认的模式;经常用于SSL, SSH, SMTP等应用
http模式
在此模式下,客户端请求在转发至后端服务器前将会被深度分析,所有不与RFC格式兼容的请求都会被拒绝
health模式
目前已经被废除
retries
设置连接后端服务器的失败重试次数,如果连接失败的次数超过该数值,HAProxy会将对应的后端服务器标记为不可用
timeout connect
设置成功连接到一台服务器的最长等待时间,默认单位是毫秒,但也可以使用其他时间单位作后缀
timeout client
设置连接客户端发送数据时最长等待时间,默认单位是毫秒,但也可以使用其他时间单位作后缀
timeout server
设置服务器端回应客户端数据发送的最长等待时间,默认单位是毫秒,但也可以使用其他时间单位作后缀
timeout check
设置对后端服务器的检测超时时间,默认单位是毫秒,但也可以使用其他时间单位作后缀



  1. frontend部分
frontend www
    bind *:80
    mode http 
    option httplog 
    option forwardfor
    option httpclose
    log global
    default_backend htmpool

通过frontend关键字定义了一个名为"www"的前端虚拟节点
bind
此选项用于定义一个或者几个监听的套接字,只能在frontend和listen中定义
格式如下:
bind [<address>:[port_range]] [interface]
option httplog
默认情况下,HAProxy日志是不记录HTTP请求的,此选项的作用是启用日志记录HTTP请求
option forwardfor
此选项的作用是保证后端服务器可记录客户端真实的IP
option httpclose
此选项表示客户端和服务端完成一次连接请求后,HAProxy将主动关闭此TCP连接。这是对性能非常有帮助的一个参数
log global
表示使用global段中定义的日志格式
default_backend htmpool
此选项用于指定后端默认的服务器池



  1. backend部分
backend htmpool
    mode http 
    option redispatch
    option abortonclose
    balance roundrobin
    cookie SERVERID
    option httpchk GET /index.php 
    server web1 10.1.1.1:80 cookie server1 weight 6 check inter 2000 rise 2 fall 3
    server web2 10.1.1.2:80 cookie server2 weight 6 check inter 2000 rise 2 fall 3

backend用于定义一个名称为htmpool的后端服务器组,根据需要可以定义多个
option redispatch
此参数用于cookie保持的环境中。在默认情况下,HAProxy会将其请求的后端服务器的serverID插入cookie中,以保证会话的session持久性。而如果后端服务器出现故障,客户端的cookie是不会刷新的,这就会造成无法访问。此时,如果设置了此参数,就会将客户的请求强制定向到另外一台健康的后端服务器上,以保证服务正常
option abortonclose
此参数可以在服务器负载很高的情况下,自动结束当前队列中处理时间比较长的连接
balance source
指定负载均衡算法,HAProxy支持的负载均衡算法:
roundrobin
基于权重进行轮叫调度的算法
static-rr
基于权重进行轮叫调度的算法,不过此算法为静态算法,在运行时调整其服务器权重不会生效
source
基于请求源IP的算法。此算法先对请求的源IP进行HASH运算,然后将结果与后端服务器的权重总数相除后转发至某台匹配的后端服务器。这种方式可以使同一个客户端IP的请求始终转发到某特定的后端服务器
leastconn
此算法会将新的连接请求转发到具有最少连接数目的后端服务器。在会话时间较长的场景中推荐使用此算法 ,例如数据库负载均衡
uri
此算法会对部分或整个URI进行HASH运算,再经过与服务器的总权重相除,最后转发到某台匹配的后端服务器上
uri_param
此算法会根据URL路径中的参数进行转发,这样可保证在后端真实服务器数据不变时,同一个用户的请求始终分发到同一台机器上
hdr
此算法根据HTTP头进行转发,如果指定的HTTP头名称不存在,则使用roundrobin算法 进行策略转发
cookie SERVERID
表示允许向cookie插入SERVERID,每台服务器的SERVERID可在下面的server关键字中使用cookie关键字定义
option httpchk
此选项表示启用HTTP的服务状态检测功能
格式如下:
option httpchk <method> <uri> <version>
method
表示HTTP请求的方式,常用的有OPTIONS,HEAD, GET几种方式。一般的健康检查可以采用HEAD方式进行,而不是采用GET方式,这是因为HEAD方式没有数据返回,仅检查响应报文的状态码是不是200.因此相对于GET, HEAD的方式更简单、更快
uri
表示要检测的URL地址
version
指定心跳检测时的HTTP的版本号
server web1 10.1.1.1:80 cookie server1 weight 6 check inter 2000 rise 2 fall 3
server用于定义多台后端真实服务器,不能用于frontend和listen段
格式如下:
server <name> <address>:[port] [param]
name
为后端真实服务器指定一个内部名称,随便定义一个即可
address:port
指定后端服务器的IP地址及端口
param
参数
常用的参数:
check 表示启用对此后端服务器执行健康状态检查
inter 设置健康状态检查的时间间隔,单位是毫秒
rise 检查多少次认为服务器可用
fall 检查多少次认为服务器不可用
weight 设置服务器的权重,默认为1, 最大为256。 设置为0表示不参与负载均衡
backup 设置备份服务器,用于所有后端服务器全部不可用时
cookie 为指定的后端服务器设置cookie值,此处指定的值将在请求入站时被检查,第一次为此值挑选的后端服务器将在后续的请求中一直被选中,其目的在于实现持久连接的功能



  1. listen部分
listen admin_status
    bind 0.0.0.0:9188
    mode http 
    log 127.0.0.1 local0 err
    stats refresh 30s
    stats uri /haproxy-status                           
    stats realm Welcome login 
    stats auth admin:admin 
    stats hide-version 
    stats admin if TRUE

listen部分用于配置HAProxy监控页面相关的参数
stats refresh 30s
设置HAProxy监控统计页面自动刷新的时间
stats uri /haproxy-status
设置HAProxy监控页面访问的URI路径
stats realm Welcome login
设置登录监控页面时,密码框上的提示信息
stats auth admin:admin
设置登录监控页面的用户名,密码。用户密码用冒号隔开,可以设置多个,每行一个
stats hide-version
设置在监控页面上隐藏HAProxy的版本号
status admin if TRUE
设置此选项,可在监控页面上启用、禁用后端服务器,仅在1.4.9版本以后生效

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容

  • 互联网架构基础知识 一、网站常见架构 负载层 页面缓存层 web层 数据层 二、运维法则 缓存为王 尽量在前端(缓...
    魏镇坪阅读 4,788评论 0 9
  • HAProxy是由WillyTarreau开发的一款具备高可用性、负载均衡、虚拟主机支持以及基于TCP和HTTP的...
    robot_test_boy阅读 985评论 0 2
  • 1. 程序环境: 程序:/usr/sbin/haproxy 主配置文件:/etc/haproxy/haproxy....
    Net夜风阅读 1,745评论 0 0
  • HAProxy简介HAProxy配置ACL配置TCP转发SSL转发 一、HAProxy简介: (一)HAProxy...
    哈喽别样阅读 1,520评论 0 0
  • Haproxy是既可以工作在7层也能工作在4层的反代工具.Haproxy的功能: 路由HTTP请求到后端服务器,基...
    uangianlap阅读 1,536评论 0 1