1.简介
HAProxy,它可以提供高可用性、负载均衡,以及基于TCP(第四层)和HTTP(第七层)的应用程序代理。
HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
2.负载均衡算法:
- roundrobin:简单的轮询
- static-rr:权重轮询
- leastconn:最少连接者优先
- source:根据请求源IP,这个跟Nginx的ip_hash机制类似
- ri:根据请求的URI
- rl_param:表示根据请求的URI参数‘balance url_param’requires an URL parameter name;
- hdr(name):根据HTTP请求头来锁定每一次HTTP请求
- rdp-cookie(name):根据cookie来锁定并哈希每一次TCP请求
3.haproxy 的配置文件
haproxy 的配置文件由两部分组成:全局设定和对代理的设定,共分为五段:global
,defaults
,frontend
,backend
,listen
- global: 全局配置,主要用于定义全局参数,属于进程级的配置,通常和操作系统配置有关。
- default: 配置默认参数,这些参数可以被用到frontend,backend,Listen组件。
- frontend:接收请求的前端虚拟节点,frontend可以指定具体使用后端的backend。
- backend : 后端服务集群的配置,真实服务器,一个backend对应一个或者多个实体服务器。
- listen: fronted和backend的组合体,比如haproxy实例状态监控部分配置。Haproxy1.3之前的唯一配置方式。