centos之Haproxy 负载均衡学习笔记

HAProxy的特点是:
1、支持两种代理模式:TCP(四层)和HTTP(七层),支持虚拟主机;
2、能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作
3、支持url检测后端的服务器出问题的检测会有很好的帮助。
4、更多的负载均衡策略比如:动态加权轮循(Dynamic Round Robin),加权源地址哈希(Weighted Source Hash),加权URL哈希和加权参数哈希(Weighted Parameter Hash)已经实现
5、单纯从效率上来讲HAProxy更会比Nginx有更出色的负载均衡速度。
6、HAProxy可以对Mysql进行负载均衡,对后端的DB节点进行检测和负载均衡。
9、支持负载均衡算法:Round-robin(轮循)、Weight-round-robin(带权轮循)、source(原地址保持)、RI(请求URL)、rdp-cookie(根据cookie)
10、不能做Web服务器即Cache。

源码方式安装Haproxy

#tar xzvf haproxy-1.4.17.tar.gz
#cd haproxy-1.4.17
#make TARGET=linux26
#make install

测试配置文件如下

  1 global
  2     log    127.0.0.1 local0
  3 #    log    127.0.0.1 local1
  4     maxconn    4000
  5     ulimit-n 8000
  6     uid    0
  7     gid    0
  8 #    chroot    /tmp
  9 #    nbproc    2
 10 #    daemon
 11 #    debug
 12 #    quiet
 13
 14 listen proxy1 192.168.207.128:8000
 15     mode    http
 16 #    source    127.0.0.2:0
 17 #    log    127.0.0.1 local0
 18 #    log    127.0.0.1 local1
 19     log global
 20     #mode    tcp
 21         cookie SERVERID insert indirect
 22     balance roundrobin
 23     #dispatch 127.0.0.1:3130
 24     #dispatch 127.0.0.1:31300
 25     #dispatch 127.0.0.1:80
 26     #dispatch 127.0.0.1:22
 27     option httpchk
 28 #    server test 127.0.0.1:80 cookie cookie1 check inter 300
 29 #        server web02 192.168.0.104:80 cookie cookie2 check inter 300
 30 server  web01 127.0.0.1:80 cookie cookie1  check inter 2000 fall 3 weight 30              #定义的多个后端
 31 server  web02 192.168.0.104:80 cookie cookie2 check inter 2000 fall 3 weight 30              #定义的多个后端
 32
 33 #    server nc 127.0.0.1:8080 cookie cookie1 check inter 300
 34 #    server tuxlocal0 10.101.23.9:80 cookie cookie1 check
 35 #    server tuxlocal1 127.0.0.1:80 cookie cookie1 check
 36 #    server tuxlocal2 127.0.0.1:80 cookie cookie2 check
 37 #    server tuxlocal3 127.0.0.1:80 cookie cookie3 check
 38 #    server tuxlocal4 127.0.0.1:80 cookie cookie4 check
 39 #    server vax 10.101.14.1:80 cookie cookie1 check
 40     #server tuxceleron 10.101.0.1:80 cookie cookie2 check
 41     #server telnet 127.0.0.1:23
 42     #server ssh 127.0.0.1:22
 43     #server local 127.0.0.1:3130 cookie cookie3 check
 44     #server ko 127.0.0.1:0 cookie cookie3 check
 45     #server local 127.0.0.1:8001 cookie cookie3 check
 46     #server local 127.0.0.1:3130
 47     #server celeron 10.101.0.1:80 cookie srv1
 48     #server celeron 10.101.0.1:31300
 49     #server local 10.101.23.9:31300
 50     contimeout    3000
 51     clitimeout    150000
 52     srvtimeout    150000
 53     maxconn 60000
 54     option redispatch
 55     retries    3
 56     grace 3000
 57     #rsprep    ^Server.* Server:\ IIS
 58     #rspdel    ^Server.*
 59     #rspadd Set-Cookie:\ mycookie=0;\ path=/
 60     #rsprep ^(Date:\ )([^,]*)(,\ )(.*) LaDate\ est:\ \4\ (\2)
 61     # force connection:close
 62     #reqidel ^Connection:
 63     #rspidel ^Connection:
 64     #reqadd    Connection:\ close
 65     #rspadd    Connection:\ close
 66     # processing options
 67     #option    keepalive
 68     option    forwardfor
 69     option httplog
 70     option dontlognull
 71 #    reqirep ^(Test:\ ) \0_toto_\1_toto
 72 #    reqidel ^X-Forwarded-for:
 73 #    reqirep ^(GET|POST)\ .* \0
 74 #    reqirep ^(Host:|Connection:|User-agent:|Cookie:)\ .* \0
 75 #    reqideny ^
 76
 77 listen proxy2 0.0.0.0:8001
 78     mode    http
 79     #mode    tcp
 80     dispatch 127.0.0.1:80
 81     #dispatch 127.0.0.1:31300
 82     #dispatch 127.0.0.1:80
 83     #dispatch 127.0.0.1:22
 84     #server tuxlocal 127.0.0.1:80 cookie cookie1 check
 85     #server tuxceleron 10.101.0.1:80 cookie cookie2 check
 86     #server telnet 127.0.0.1:23
 87     #server ssh 127.0.0.1:22
 88     #server local 127.0.0.1:3130 cookie cookie3 check
 89     #server local 127.0.0.1:3130
 90     #server celeron 10.101.0.1:80 cookie srv1
 91     #server celeron 10.101.0.1:31300
 92     #server local 10.101.23.9:31300
 93     contimeout    3000
 94     clitimeout    150000
 95     srvtimeout    150000
 96     maxconn 60000
 97     option redispatch
 98     retries    3
 99     grace 3000
100     #rsprep    ^Server.* Server:\ IIS
101     #rspdel    ^Server.*
102     rspadd Set-Cookie:\ SERVERID=12345678;\ path=/
103     #rsprep ^(Date:\ )([^,]*)(,\ )(.*) LaDate\ est:\ \4\ (\2)
104
105 listen proxy3 0.0.0.0:3128
106     disabled
107     mode    http
108         cookie SERVERID insert indirect
109     #dispatch 127.0.0.1:8080
110     server srv1 127.0.0.1:8080
111      #server srv2 192.168.12.3:8080
112     contimeout    3000
113     clitimeout    450000
114     srvtimeout    450000
115     maxconn 60000
116     option redispatch
117     retries    3
118     grace 3000
119     rspdel ^Via:.*
120     monitor-net    192.168.12.252/30
121
122
123 listen proxy4 0.0.0.0:3129
124     disabled
125     mode    http
126     transparent
127 #    dispatch 127.0.0.1:80
128     contimeout    3000
129     clitimeout    150000
130     srvtimeout    150000
131     maxconn 60000
132     retries    3
133     grace 3000
134
135 #    log    10.101.11.1 local1
136 #    log    10.101.11.1 local2
137
138 #    cliexp    ^(.*ASPSESSIONID.*=)(.*) \1FENICGGCBECLFFEEOAEAIFGF
139 #    cliexp    ^(GET.*)(.free.fr)(.*) \1.online.fr\3
140 #    cliexp    ^(POST.*)(.free.fr)(.*) \1.online.fr\3
141 #    cliexp    ^Proxy-Connection:.*    Proxy-Connection:\ close
142 #    srvexp    ^(Location:\ )([^:]*://[^/]*)(.*) \1\3
143
144 listen health 0.0.0.0:3130
145     mode    health
146     clitimeout    1500
147     srvtimeout    1500
148     maxconn 6000
149     grace 0
150
151
152 listen health2 0.0.0.0:31300
153     mode    health
154     option  httpchk
155     clitimeout    1500
156     srvtimeout    1500
157     maxconn 6000
158     grace 0

Haproxy配置

运行一下命令启动Haproxy

[[email protected] sbin]$ ./haproxy -f /usr/local/haproxy/examples.cfg

启动效果如下

server web01 127.0.0.180 check inter 2000 fall 3 weight 30 #定义的多个后端
server web02 192.168.0.104:80 check inter 2000 fall 3 weight 30 #定义的多个后端

配置的第一个80端口为centos本机的Apache 服务器,第二个为 iis,用IE和火狐打开可以看到请求被转发到不同的web服务器,效果如下

参考:

http://blog.csdn.net/tantexian/article/details/50056199

http://www.cnblogs.com/kgdxpr/p/3272861.html

时间: 2024-12-15 01:53:55

centos之Haproxy 负载均衡学习笔记的相关文章

Nginx+Keepalived主备负载均衡学习笔记

实验环境及软件版本: CentOS版本:    6.6(2.6.32.-504.el6.x86_64) nginx版本:     nginx-1.6.2 keepalived版本:keepalived-1.2.7 准备工作: 关闭防火墙:service iptables stop chkconfig iptables off 关闭selinux: sed -i 's/SELINUX=disabled/SELINUX=enforcing/g' /etc/selinux/config init 6

高负载均衡学习haproxy之安装与配置

http://www.52codes.net/article/3117.html 1.1.haproxy原理 haproxy提供高可用性.负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案. haproxy特别适用于那些负载特别大的web站点,这些站点通常又需要会话保持或七层处理.haproxy运行在时下的硬件上,完全可以支持数以万计的并发连接,并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器

Nginx/LVS/HAProxy负载均衡软件的优缺点

一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术.具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了:如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时,可以考虑用LVS. 一种是通过硬件来进行进行,常见的硬件有比较昂贵的F5和Array等商用的负载均衡器,它的优点就是有专业的维护团队来对这些服务进行维护.缺点就是花销太大,所以对于规模较小的网络服务来说暂时还没有需要使

Nginx/LVS/HAProxy负载均衡软件的优缺点详解

PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术.具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了:如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时,可以考虑用LVS. 一种是通过硬件来进行进行,常见的硬件有比较昂

lvs/nginx/haproxy 负载均衡优缺点分析讲解

PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术.具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了:如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时,可以考虑用LVS. 一种是通过硬件来进行进行,常见的硬件有比较昂

(总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解

PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术.具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了:如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时,可以考虑用LVS. 一种是通过硬件来进行进行,常见的硬件有比较昂

Nginx/LVS/HAProxy负载均衡软件的优缺点详解(转)

原文:http://www.ha97.com/5646.html PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术.具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了:如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时

Nginx/LVS/HAProxy 负载均衡软件的优缺点对比

Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术,具体的应用需求还得具体分析. 如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了:如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时,可以考虑用LVS. 目前关于网站架构一般比较合理流行的架构方案:Web前端采用Nginx/HAProxy+Keepalived作负载均衡器:后端采

Nginx、LVS及HAProxy负载均衡软件的优缺点详解

提升根据不同的阶段来使用不同的技术.具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了:如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时,可以考虑用LVS. 一种是通过硬件来进行,常见的硬件有比较昂贵的F5和Array等商用的负载均衡器,它的优点就是有专业的维护团队来对这些服务进行维护.缺点就是花销太大,所以对于规模较小的网络服务来说暂时还没有需要使用:另外一种就是类似于Nginx/LVS