backend
blance 算法
动态hash的特点
服务器运行时就可进行权重调整,即只需要重新载入配置文件即可,不需要重新启动haproxy
支持慢速启动,即重新恢复的后端server不会一次性接收大量请求,而是慢慢拿回属于自己的
roundrobin--> 基于权重的轮循调度
动态hash
只能接收4095个后端server
后面添加权重标记
server [标识] ip check weight num
static-rr-->不支持动态hash,没有后端数量限制,基本不用
leastconn-->类似于lvs中的wlc
不过这里只考虑活动连接数,即选择活动连接数少的,另外,最好在长连接会话中使用,如sql,ldap
source-->基于hash表的算法,类似于nginx中的iphash
键:原IP地址的hash/值:挑选过的server,应用于动态服务器,保持会话
hash-type map-based 静态hash 对于ip的hash取余
hash-type consistent 动态hash 使用hash环,原理查看(memcached多个memcached的解决方法)
uri-->基于uri生成hash表的算法,主要用于后端是缓存服务器
基于uri来进行选择,比如客户访问了http://test.com/a.jpg,那么在此uri缓存失效之前,任何一个客户访问这个路径,一定访问的就是a.jpg
len 基于多少个字符的uri
depth 基于多少个目录层次的uri
len 3 hash的uri是/a/
depth 3 hash的uri是/a/b/c/
url_params-->根据url的参数来调度,用于将同一个用户的信息,都发送到同一个后端server
参数指那一部分,先看下url格式,其中绿色加粗的就是
<scheme>://<user>:<passwd>@<host>:<port>/<path>;<params>?<query>#<frag>
<query>表示php程序请求的查询信息
<frag>表示当前页的片段页,即跳转到当前页的某个部分
这里的意思就是如果访问的是hammers,则传递参数sale(并赋值false),如果访问的是index.html,则传递参数graphics(并赋值ture)
hdr(name)-->header基于首部的信息来构建hash表HTTP之报文|首部
hdr(Host) 基于用户请求的主机名进行调度