Haproxy详解
HAProxy: 是法国人Willy Tarreau开发的一个开源软件,是一款应对客户端10000以上的同时连接的高性能的TCP和 HTTP负载均衡器。其功能是用来提供基于cookie的持久性, 基于内容的交换,过载保护的高级流量管制,自动故障切换 ,以正则表达式为基础的标题控制运行时间,基于Web的报表,高级日志记录以帮助排除故障的应用或网络及其他功能。
代理
正向代理,反向代理
代理服务器,可以提供缓存功能加速客户端访问,同时可以对缓存数据进行有效性检查
内容路由:根据流量以及内容类型将请求转发至特定的服务器
转码器:支持压缩功能,将数据以压缩形式发送给客户端
缓存
减少冗余内容传输
节省带宽,缓解网络瓶颈
降低了对原始服务器的请求压力
降低了传输延迟
负载均衡集群:
四层:
lvs, nginx(stream),haproxy(mode tcp)
七层:
http: nginx(http, ngx_http_upstream_module), haproxy(mode http), httpd, ats, perlbal, pound...
HAProxy功能
HAProxy是TCP / HTTP反向代理服务器,尤其适合于高可用性环境
可以针对HTTP请求添加cookie,进行路由后端服务器
可平衡负载至后端服务器,并支持持久连接
支持基于cookie进行调度
支持所有主服务器故障切换至备用服务器
支持专用端口实现监控服务
支持不影响现有连接情况下停止接受新连接请求
可以在双向添加,修改或删除HTTP报文首部
支持基于pattern实现连接请求的访问控制
通过特定的URI为授权用户提供详细的状态信息
HAproxy组成
包名:haproxy
程序环境
主程序:/usr/sbin/haproxy
配置文件:/etc/haproxy/haproxy.cfg
配置文件
haproxy.cfg主要有两部分组成:global,和proxies配置段
global:全局配置段
进程及安全配置相关的参数
性能调整相关参数
Debug参数
proxies:代理配置段
defaults:为frontend, backend, listen提供默认配置
fronted:前端,相当于nginx, server {}
backend:后端,相当于nginx, upstream {}
listen:同时拥有前端和后端,适用于一对一环境

下面是安装部署:

环境:
系统环境:centos6.5_x64
Haproxy版本:haproxy-1.4.21.tar.gz
安装:

yum -y install pcre-devel bzip2-devel

tar zxf haproxy-1.4.21.tar.gz

cd haproxy-1.4.21

make TARGET=linux26 //内核版本

make install

创建配置目录:

mkdir /etc/haproxy

将haproxy.cfg复制到配置文件目录

cp examples/haproxy.cfg /etc/haproxy/

Haproxy配置文件通常分为三部分,即global、defaults和listen。Global为全局配置,defaults为默认配置,listen为应用组件配置。

cd /etc/haproxy/

vi haproxy.cfg

Haproxy的部署安装_第1张图片
复制启动脚本:

cp /usr/local/src/haproxy-1.4.21/examples/haproxy.init /etc/init.d/haproxy

ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy

service haproxy start