Haproxy介绍及其定位
HAProxy提供高可用性负载均衡以及基于TCPHTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。根据官方数据,其最高极限支持10G的并发。
HAProxy特别适用于那些负载特大的web站点, 这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
其支持从4层至7层的网络交换,即覆盖所有的TCP协议。就是说,Haproxy 甚至还支持 Mysql 的均衡负载。
如果说在功能上,能以proxy反向代理方式实现 WEB均衡负载,这样的产品有很多。包括 NginxApacheProxylighttpdCheroke 等。
但要明确一点的,Haproxy 并不是 Http 服务器。以上提到所有带反向代理均衡负载的产品,都清一色是 WEB 服务器。简单说,就是他们能自个儿提供静态(html,jpg,gif..)或动态(php,cgi..)文件的传输以及处理。而Haproxy 仅仅,而且专门是一款的用于均衡负载的应用代理。其自身并不能提供http服务。
安装和配置 
Haproxy 的配置相当简单,
从官方网站:http://www.haproxy.org 下载最新版本。
# tar -zxvf  haproxy-1.3.20 -C /usr/local/src
# make TARGET=linux26 PREFIX=/usr/local/haproxy
# mak  install PREFIX=/usr/local/haproxy
#cd /usr/local/haproxy && vim haproxy.cfg     #建立配置文件
   简单进行配置:
 Global                     #全局配置
maxconn 5120                   #最大连接数 
chroot  /usr/local/haproxy          
uid     99                     
gid     99
Daemon                        #后台
Quiet                         
nbproc 2                          #2个实例
#pidfile /var/run/haproxy-private.pid             
Defaults                          #默认配置
log     global                 
mode    http                      #所处理的类别,采用http模式,
option  httplog                      #所采用的日志格式
option  dontlognull                 
log     127.0.0.1       local3           #输出日志类别
retries 3                             #3次链接失败就认为服务不可用     
option  redispatch                  #SERVERID对应的服务器挂掉后,强制定向健康的服务器.
Option  abortonclose                  #当服务器负载较高的时候自动结束掉当前队列中处理比较久的连接.
maxconn 2000             
Timeout connect      5000     #连接超时      
Timeout client      50000      #客户端超时
Timeout server      50000     # 服务器超时
listen  webfarm 0.0.0.0:80
mode    http         
balance roundrobin                              #负载均衡算法
cookie  SERVERID        insert  indirect
option  httpclose                             #每次请求完毕后,haproxy主动关闭通道.haproxy不支持keepalive.
option  forwardfor                            #获取客户端IP地址
option  httpchk HEAD /index.htm HTTP/1.0               #检测页面 如出错 返回 503 
server  app_bbs1 192.168.0.250:80 cookie applinst1 check inter 2000 rise 2 fall 5
server  app_bbs2 192.168.0.251:80 cookie applinst2 check inter 2000 rise 2 fall 5
Listen admin_web                  
Bind 0.0.0.0:88                          #监听88端口
Mode http                  
Option httplog           
Maxconn 10                   
Stats refresh 10                             #页面10s刷新
Stats uri /haproxy-stats                       #统计的页面url
Stats realm evil\Haproxy                     #认证框下的名字
Stats auth admin:redhat                         #认证用户及密码 
Stats hide-version                              #隐藏统计页面中的haproxy版本
  修改日志:
   # vim /etc/syslog.conf
  Local3.* /var/log/haproxy.log
  Local0.*  /var/log/haproxy.log
  # service syslog restart
  重启 haproxy:
 #/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg -st `cat /var/run/haproxy.pid`
支持虚拟主机:
Listen  www.bbs.sina.com.cn:8012
Mode http
Option httpchk GET /index.html 
Server bbs1 192.168.1.1:8080 check weight=3  接受检查,设置权重
Server bbs2 192.168.1.2:8080 check weight=3  同上
Listen www.bbs1.sina.com.cn: 8013
Mode http
Option httpchk GET /index.html
Server s1 192.168.1.3:8080 check weight=2
Server s2 192.168.1.4:8080 check weight=2