一、HAProxy概述
1.1 HAProxy简介
• 它是免费、快速并且可靠的一种解决方案
• 适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理
• 提供高可用性、负载均衡以及基于TCP和HTTP应用的代理
1.2 衡量负责均衡器性能的因素
• Session rate 会话率
– 每秒钟产生的会话数
• Session concurrency 并发会话数
– 服务器处理会话的时间越长,并发会话数越多
• Data rate 数据速率
– 以MB/s或Mbps衡量
– 大的对象导致并发会话数增加
– 高会话数、高数据速率要求更多的内存
1.3 HAProxy工作模式
• mode http
– 客户端请求被深度分析后再发往服务器
• mode tcp
– 客户端与服务器之间建立会话,不检查第七层信息
• mode health
– 仅做健康状态检查,已经不建议使用
1.4 HTTP协议解析
• 当HAProxy运行在HTTP模式下,HTTP请求
(Request)和响应(Response)均被完全分析和索引,这样便于创建恰当的匹配规则
• 理解HTTP请求和响应,对于更好的创建匹配规则至关重要
HTTP事务模型
• HTTP协议是事务驱动的
• 每个请求(Request)仅能对应一个响应(Response)
• 常见模型:
– HTTP close
– Keep-alive
– Pipelining
• HTTP close
– 客户端向服务器建立一个TCP连接
– 客户端发送请求给服务器
– 服务器响应客户端请求后即断开连接
– 如果客户端到服务器的请求不只一个,那么就要不断的去建立连接
– TCP三次握手消耗相对较大的系统资源,同时延迟较大
• Keep-alive
– 一次连接可以传输多个请求
– 客户端需要知道传输内容的长度,以避免无限期的等待传输结束
– 降低两个HTTP事务间的延迟
– 需要相对较少的服务器资源
• Pipelining
– 仍然使用Keep-alive
– 在发送后续请求前,不用等前面的请求已经得到回应
– 适用于有大量图片的页面
– 降低了多次请求之间的网络延迟
1.5 HTTP头部信息
• 请求头部信息
– 方法:GET
– URI:/serv/login.php?lang=en&profile=2
– 版本:HTTP/1.1

• 请求头部信息
– 请求头包含许多有关的客户端环境和请求正文的有用信息,如浏览器所使用的语言、请求正文的长度等

• 响应头部信息
– 版本:HTTP/1.1
– 状态码:200
– 原因:OK

• 新浪页面实例


浙公网安备 33010602011771号