haproxy 配置文件详解 之 backend
配置示例:
backend htmpool
mode http
option redispatch
option abortonclose
balance static-rr
cookie SESSION_COOKIE insert indirect nocache
option httpchk GET /index.jsp
server 237server 192.168.81.237: cookie server1 weight check inter rise fall
server iivey234 192.168.81.234: cookie server2 weight check inter rise fall
这个部分通过backend 关键字定义了一个名为“htmpool”的后端真实服务器组。下面介绍每个选项的含义。
option redispatch:此参数用于cookie 保持的环境中。在默认情况下,HAProxy会将其请求的后端服务器的serverID 插入到cookie 中,以保证会话的SESSION持久性。而如果后端的服务器出现故障,客户端的cookie 是不会刷新的,这就出现了问题。此时,如果设置此参数,就会将客户的请求强制定向到另外一个健康的后端服务器上,以保证服务的正常。
option abortonclose:如果设置了此参数,可以在服务器负载很高的情况下,自动结束掉当前队列中处理时间比较长的链接。
balance:此关键字用来定义负载均衡算法。目前HAProxy 支持多种负载均衡算法,常用的有如下几种:
roundrobin:是基于权重进行轮询调度的算法,在服务器的性能分布比较均匀的时候,这是一种最公平、最合理的算法。此算法经常使用。
static-rr:也是基于权重进行轮询的调度算法,不过此算法为静态方法,在运行时调整其服务器权重不会生效。
source:是基于请求源IP 的算法。此算法先对请求的源IP 进行hash 运算,然后将结果与后端服务器的权重总数相除后转发至某个匹配的后端服务器。这种方式可以使同一个客户端IP 的请求始终被转发到某特定的后端服务器。
leastconn:此算法会将新的连接请求转发到具有最少连接数目的后端服务器。在会话时间较长的场景中推荐使用此算法,例如数据库负载均衡等。此算法不适合会话较短的环境中,例如基于HTTP 的应用。
uri:此算法会对部分或整个URI 进行hash 运算,再经过与服务器的总权重相除,最后转发到某台匹配的后端服务器上。
uri_param : 此算法会根据URL 路径中的参数进行转发,这样可保证在后端真实服务器数量不变时,同一个用户的请求始终分发到同一台机器上。
hdr(<name>) : 此算法根据http 头进行转发,如果指定的http 头名称不存在,则使用roundrobin 算法进行策略转发。
cookie:表示允许向cookie 插入SESSION_COOKIE,每台服务器的SERVERID 可在下面的server 关键字中使用cookie 关键字定义。
option httpchk:此选项表示启用HTTP 的服务状态检测功能。HAProxy 作为一款专业的负载均衡器,它支持对backend 部分指定的后端服务节点的健康检查,以保证在后端backend 中某个节点不能服务时,把从frotend 端进来的客户端请求分配至backend 中其他健康节点上,从而保证整体服务的可用性。
“optionhttpchk”的用法如下:
option httpchk <method> <uri> <version>
其中,各个参数的含义如下:
method:表示HTTP 请求的方式,常用的有OPTIONS、GET、HEAD 几种方式。一般的健康检查可以采用HEAD 方式进行,而不是才采用GET 方式,这是因为HEAD 方式没有数据返回,仅检查Response 的HEAD 是不是200 状态。因此相对与GET 来说,HEAD 方式更快,更简单。
uri:表示要检测的URL 地址,通过执行此URL,可以获取后端服务器的运行状态。在正常情况下将返回状态码200,返回其他状态码均为异常状态。
version:指定心跳检测时的HTTP 的版本号。
server:这个关键字用来定义多个后端真实服务器,不能用于defaults 和frontend部分。
使用格式为:
server <name> <address>[:port] [param*]
其中,每个参数含义如下:
<name>:为后端真实服务器指定一个内部名称,随便定义一个即可。
<address>:后端真实服务器的IP 地址或主机名。
<port>:指定连接请求发往真实服务器时的目标端口。在未设定时,将使用客户端请求时的同一端口。
[param*]:为后端服务器设定的一系参数,可用参数非常多,这里仅介绍常用的一些参数:
check:表示启用对此后端服务器执行健康状态检查。
inter:设置健康状态检查的时间间隔,单位为毫秒。
rise:设置从故障状态转换至正常状态需要成功检查的次数,例如。“rise 2”表示2 次检查正确就认为此服务器可用。
fall:设置后端服务器从正常状态转换为不可用状态需要检查的次数,例如,“fall 3”表示3 次检查失败就认为此服务器不可用。
cookie:为指定的后端服务器设定cookie 值,此处指定的值将在请求入站时被检查,第一次为此值挑选的后端服务器将在后续的请求中一直被选中,其目的在于实现持久连接的功能。上面的“cookie server1”表示web1 的serverid 为server1。同理,“cookie server2”表示web2 的serverid 为server2。
weight:设置后端真实服务器的权重,默认为1,最大值为256。设置为0 表示不参与负载均衡。
backup:设置后端真实服务器的备份服务器,仅仅在后端所有真实服务器均不可用的情况下才启用。
haproxy 配置文件详解 之 backend的更多相关文章
- haproxy配置文件详解和ACL功能
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- haproxy 配置文件详解 之 frontend
配置示例: frontend www bind *: mode http option httplog option forwardfor option httpclose log global #a ...
- haproxy 配置文件详解 之 综述
HAProxy 配置文件根据功能和用途,主要有5 个部分组成,但有些部分并不是必须的,可以根据需要选择相应的部分进行配置. 1.global 部分 用来设定全局配置参数,属于进程级的配置,通常和操作系 ...
- 千万级高并发负载均衡软件haproxy配置文件详解
balance roundrobin #轮询方式 balance source #将用户IP经过hash计算后,使同一IP地址的所有请求都发送到同一固定的后 ...
- haproxy配置文件详解--转
原始出处:http://itnihao.blog.51cto.com/1741976/915537 #/usr/local/sbin/haproxy -f /etc/haproxy/haproxy.c ...
- Haproxy配置文件详解
#/usr/local/sbin/haproxy -f /etc/haproxy/haproxy.cfg -st `cat /var/run/haproxy.pid` ################ ...
- haproxy 配置文件详解 之 WEB监控平台
HAProxy 虽然实现了服务的故障转移,但是在主机或者服务出现故障的时候,并不能发出通知告知运维人员,这对于及时性要求很高的业务系统来说,是非常不便的,不过,HAProxy 似乎也考虑到了这一点,在 ...
- haproxy 配置文件详解 之 ACL 智能负载均衡
由于HAProxy 可以工作在七层模型下, 因此,要实现 HAProxy 的强大功能,一定要使用强大灵活的ACL 规则,通过ACL 规则可以实现基于HAProxy 的智能负载均衡系统. HAProxy ...
- haproxy 配置文件详解 之 配置文件示例
此示例文件在haproxy1.8.20 测试没有问题: global log 127.0.0.1 local0 info maxconn user nobody group nobody daemon ...
随机推荐
- 搭建MQTT服务器
MQTT协议简介 MQTT 是一个基于发布/订阅模式的消息传输协议.它具有轻量级.开放.简单,易于实现,通信带宽要求低等特点.这些特点使得它对机器与机器的通信(M2M)以及物联网应用(IoT)来说是很 ...
- 运维开发实践——基于Sentry搭建错误日志监控系统
错误日志监控也可称为业务逻辑监控, 旨在对业务系统运行过程中产生的错误日志进行收集归纳和监控告警.似乎有那么点曾相识?没错... 就是提到的“APM应用性能监控”.但它又与APM不同,APM系统主要注 ...
- 读取数据,并以txt格式保存
/// <summary> /// 读取数据,并以txt格式保存 /// </summary> /// <param name="data">数 ...
- Python——全国瓜子二手车数据分析
继瓜子二手车数据爬去之后,在此进行处理分析 Pycharm代码 # coding:utf8 # author:Jery # datetime:2019/5/3 17:35 # software:PyC ...
- python课程单元三编程题讲解(上)
目录 1.快乐的数字 2.凯撒密码I 3.凯撒密码II 4.括号配对检测 A @ 下面向大家介绍一下我在学习python课程的一些题目的解法,如果大家有什么更好的解法请私信我.这里只显示题目与 ...
- codeforces #577(Div.2)
codeforces #577(Div.2) A Important Exam A class of students wrote a multiple-choice test. There are ...
- English--介词省略句型与总结
English|介词省略句型与总结 本篇文章将会介绍介词的省略与整个语法内容的总结.小板凳都带上,准备开始了! 前言 目前所有的文章思想格式都是:知识+情感. 知识:对于所有的知识点的描述.力求不含任 ...
- js生成一定范围内的随机整数
Math.floor(Math.random()*(m-n+1)+n) Math.floor(Math.random() * (50 - 1 + 1) + 1): 生成1-50内的随机整数
- HP服务器重装centeos 6.3红屏错误码 Illegal Opcode
公司组装一个服务器要装centos 6.3 .出现一个问题 如果自动引导一切正常.如果手动分区重启后就会,红屏错误码 Illegal Opcode. 去网上问度娘各种不靠谱,有时说要 升级BIOS,从 ...
- 集合(set)
'''set是一个无序(不支持索引和切片)而且不重复的集合,有些类似于数学中的集合,也可以求交集,求并集等,''' s1={1,2,3,1} #定义一个set s1 如果s1={}为空则默认定义一个字 ...