HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

HAProxy实现了一种事件驱动, 单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户空间(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作。

架构

 haproxy 192.168.178.131

nginx 01 192.168.178.130

nginx 02 192.168.178.129


 haproxy 安装

在192.168.178.131上安装 haproxy 

wget http://www.haproxy.org/download/1.5/src/haproxy-1.5.14.tar.gz (在墙外)。

tar zxvf  haproxy-1.5.14.tar.gz
uname -a # 查看linux内核版本
make TARGET=linux26 PREFIX=/usr/local/haproxy
make install PREFIX=/usr/local/haproxy


编辑 haproxy 配置文件

vim  /etc/haproxy/haproxy.cfg

global    log 127.0.0.1   local0    log 127.0.0.1   local1 notice    #log loghost    local0 info    maxconn 4096    chroot /var/haproxy    uid 99    gid 99    daemon        nbproc  1      #debug    #quiet defaults    log global    mode    http    option  httplog    option  dontlognull    retries 3    option redispatch # 自动重定向到健康机器    maxconn 2000    timeout check 2000ms # 检查超时    timeout connect 5000ms # 连接超时    timeout client 50000ms # 客户端连接超时    timeout server 50000ms # 服务端连接超时 listen webinfo :1080    ## haproxy 的监听端口       mode http         balance roundrobin         stats uri /ha_status       option httpclose         option forwardfor         server web1 192.168.178.130:80 check weight 1 minconn 1 maxconn 3 check inter 40000  ##后端的web ip nginx 01       server web2 192.168.178.129:80 check weight 1 minconn 1 maxconn 3 check inter 40000  ##后端的web ip nginx 02#配置控制台 listen stats :6553       mode http       transparent       stats uri / haproxy-stats       stats realm Haproxy \ statistic       stats auth admin:admin

启动 haproxy [root@localhost sbin]# haproxy -f /etc/haproxy/haproxy.cfg





测试

nginx 01 192.168.178.130    ######index.html文间内容为nginx130

nginx 02 192.168.178.129   ######index.html文间内容为nginx129

上安装nginx启用80端口

通过流量器访问 haproxy 192.168.178.131

http://192.168.178.131:1080

可以看到访问的页面会在nginx130和nginx129直接变化