一、LB解决方案及Haproxy介绍

    硬件:F5:BIG IP 、Citrix:Netscaler  、A10:A10  、Redware

    软件:4 layer: lvs 、haproxy(mysql)

          7 layer: httpd(+tomcat)

                   nginx、

                   haproxy(http)

                   缓存:varnish,squid

                   ats(apache traffic server)

    常用的lvs,nginx,haproxy

    LVS是内核中的模块,在内核中完成调度(理想情况并发400W),但lvs不知道后端的资源是什么不能实现动静分离。

    Nginx,Haproxy是运行在用户空间的进程,使用反向代理机制(重新封装数据请求向后端转发)(理想情况Nginx 5W,官方10W,通常2W;Haproxy并发3W),它能实现动静分离,这是企业中用多级代理的原因。

    Haproxy是免费、极速可靠的用于tcp和基于http应用程序提供高可用、负载均衡和代理服务的解决方案,尤其适用于高负载且需要持久连接或7层处理机制的web站点。


二、Haproxy的配置

   @ 实验环境:三台服务器

        node1:haproxy  2块网卡(桥接 eth0:172.16.100.7,vnet3 eth1:192.168.21.1/24)

        node2:web1  1块网卡(vnet3 eth0:192.168.21.12)

        node3:web2  1块网卡 (vnet3 eth0:192.168.21.13)

        

    (1)分别在web1、web2上创建网页文件node2.mageedu.com和node3.mageedu.com

        如 #vim /var/www/html/index.html    

            node1.mageedu.com

         重启httpd服务,测试网页正常

    (2)安装haproxy

        #yum list haporxy

        #yum install -y haproxy

        #vi /etc/haproxy/haproxy.cfg (修改日志参数)或新建一个配置文件

        frontend main *:80

            default_backend webservers

        backend webservers

            balance roundrobin

            server s1 192.168.21.13:80

            server s2 192.168.21.14:80

        #service haproxy start

        客户访问172.16.100.7 测试ok。

        

   @ haproxy的配置说明

    global settings:全局配置

        主要用于定义haproxy进程自身的工作特性

            proxies:代理配置段

            backend:后端服务器组

            frontend:定义面向客户的监听的地址和端口,以及关联到后端服务器组;

            listen:(相当于backend+frontend)组合方式直接定义frontend及backend的一种机制;

            defaults:定义默认配置


        frontend ip:port

            use_backend

            default_backend

        backend

            balance 指明调度算法

            server ip:port

        listen ip:port

            balance

            server

            server

        defaults