⑤ uri
表示根据请求的URI左端(问号之前)进行哈希,用可用服务器的权重总数除以哈希值,根据结果进行分配 。只要服务器正常,同一个URI地址总是访问同一个服务器 。一般用于代理缓存和反病毒代理,以最大限度的提高缓存的命中率 。该算法只能用于HTTP后端;该算法一般用于后端是缓存服务器;该算法默认是静态的,所以运行时修改服务器的权重是无效的,但是算法会根据“hash-type”的变化做调整 。
⑥ url_param
【Nginx、HAProxy、LVS三者的优缺点】在HTTP GET请求的查询串中查找<param>中指定的URL参数,基本上可以锁定使用特制的URL到特定的负载均衡器节点的要求;该算法一般用于将同一个用户的信息发送到同一个后端服务器;该算法默认是静态的,所以运行时修改服务器的权重是无效的,但是算法会根据“hash-type”的变化做调整 。
⑦ hdr(name)
在每个HTTP请求中查找HTTP头<name>,HTTP头<name>将被看作在每个HTTP请求,并针对特定的节点;如果缺少头或者头没有任何值,则用roundrobin代替;该算法默认是静态的,所以运行时修改服务器的权重是无效的,但是算法会根据“hash-type”的变化做调整 。
⑧ rdp-cookie(name)
为每个进来的TCP请求查询并哈希RDP cookie<name>;该机制用于退化的持久模式,可以使同一个用户或者同一个会话ID总是发送给同一台服务器 。如果没有cookie,则使用roundrobin算法代替;该算法默认是静态的,所以运行时修改服务器的权重是无效的,但是算法会根据“hash-type”的变化做调整 。
haproxy的工作模型图:
![Nginx、HAProxy、LVS三者的优缺点](http://img.jiangsulong.com/220403/155K04061-2.jpg)
文章插图
HAPorxy缺点:
1. 不支持POP/SMTP协议
2. 不支持SPDY协议
3. 不支持HTTP cache功能 。现在不少开源的lb项目,都或多或少具备HTTP cache功能 。
4. 重载配置的功能需要重启进程,虽然也是soft restart,但没有Nginx的reaload更为平滑和友好 。
5. 多进程模式支持不够好
推荐阅读
- php经典趣味算法
- IaaS、PaaS、SaaS三种云服务模式,你了解多少?
- 金汤鱼片
- 酸汤番茄鱼片
- 冬瓜薏仁鲫鱼汤
- 清汤鳝鱼
- 红汤芹香鱼
- 自动驾驶|男子坠崖200米5天后奇迹生还 靠喝雨水、吃野果:网友惊叹命真大
- 三山五岳、五湖四海都在哪 三山五岳指
- 七剑下天山前七剑、后七剑分别是谁? 七剑下天山中的七剑是哪七剑