一,什么是haproxy
HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代 理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。 HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
二,安装haproxy
下载列表地址http://haproxy.1wt.eu
wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.8.tar.gz
#tar zxvf haproxy-1.4.8.tar.gz
#cd haproxy-1.4.8
#uname -a //查看linux内核版本
#make TARGET=linux26 PREFIX=/usr/local/haproxy
#make install PREFIX=/usr/local/haproxy
三,配置haproxy
vi /usr/local/haproxy/haproxy.cfg
global maxconn 5120 chroot /usr/local/haproxy uid 99 gid 99 daemon quiet nbproc 2 pidfile /usr/local/haproxy/haproxy.pid defaults log global mode http option httplog option dontlognull log 127.0.0.1 local3 retries 3 option redispatch maxconn 2000 contimeout 5000 clitimeout 50000 srvtimeout 50000 listen webinfo :1080 mode http balance roundrobin option httpclose option forwardfor server phpinfo1 192.168.18.2:10000 check weight 1 minconn 1 maxconn 3 check inter 40000 server phpinfo2 127.0.0.1:80 check weight 1 minconn 1 maxconn 3 check inter 40000 listen webmb :1081 mode http balance roundrobin option httpclose option forwardfor server webmb1 192.168.1.91:10000 weight 1 minconn 1 maxconn 3 check inter 40000 server webmb2 127.0.0.1:10000 weight 1 minconn 1 maxconn 3 check inter 40000 listen stats :8888 mode http transparent stats uri / haproxy-stats stats realm Haproxy \ statistic stats auth zhangy:xtajmd
三,启动haproxy
#启动haproxy
/usr/local/haproxy/haproxy -f /usr/local/haproxy/haproxy.cfg
#查看是否启动
[zhangy@BlackGhost haproxy]$ ps -e|grep haproxy
4859 ? 00:00:00 haproxy
4860 ? 00:00:00 haproxy
四,压力测试
[root@BlackGhost haproxy]# /usr/local/bin/webbench -c 100 -t 30 http://localhost:1080/phpinfo.php
Webbench – Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.Benchmarking: GET http://localhost:1080/phpinfo.php
100 clients, running 30 sec.Speed=26508 pages/min, 20929384 bytes/sec.
Requests: 13254 susceed, 0 failed.
说明:haproxy监听的端口是1080,代理192.168.18.2:10000,127.0.0.1:10000
统计监听的是8888端口 http://localhost:8888/haproxy-stats
1.4系列参考配置文件
http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
1.3系列参考配置文件
http://haproxy.1wt.eu/download/1.3/doc/configuration.txt
作者:海底苍鹰
地址:http://blog.51yip.com/server/868.html
配置文件详解:
######################################################################### # HAProxy 配置文件 ######################################################################### global # 使用系统的syslog记录日志(通过udp,默认端口号为514) log 127.0.0.1 local0 # info [err warning info debug] chroot /home/user/haproxy #限制单个进程的最大连接数 maxconn 65535 # 让进程在后台运行,即作为守护进程运行,正式运行的时候开启,此处先禁止,等同于在命令行添加参数 -D # daemon # 指定作为守护进程运行的时候,要创建多少个进程,默认只创建一个,需要daemon开启模式 # nbproc 1 # 设置debug模式运行,与daemon模式只能互斥,等同于在命令行添加参数 -d # debug pidfile /home/user/haproxy/logs/haproxy.pid # not work defaults # 在连接失败或断开的情况下,允许当前会话被重新分发 option redispatch # 设置在一个服务器上链接失败后的重连次数 retries 2 # 设置服务器分配算法 balance roundrobin # 不记录空连接 option dontlognull # 设置等待连接到服务器成功的最大时间 timeout connect 5000ms # 设置客户端的最大超时时间 timeout client 1800000ms # 设置服务器端的最大超时时间 timeout server 1800000ms # Enable the sending of TCP keepalive packets on both sides, clients and servers # NOTE: 在服务器CPU强劲的情况下,最好不要开启保活,这样可减少资源消耗 #option tcpka ##############################统计页面配置################################## listen admin_stat # 监听端口 bind *:8011 # http的7层模式 mode http option httplog log global # 统计页面自动刷新时间 stats refresh 30s # 统计页面URL stats uri /admin?stats # 统计页面密码框上提示文本 stats realm Haproxy\ Statistics # 统计页面用户名和密码设置 stats auth admin:admin # 隐藏统计页面上HAProxy的版本信息 stats hide-version ###########################TCP连接的监听配置################################ listen tcp-in bind *:2211 mode tcp # 日志记录选项 option tcplog log global # 后台服务器 # weight -- 调节服务器的负重 # check -- 允许对该服务器进行健康检查 # inter -- 设置连续的两次健康检查之间的时间,单位为毫秒(ms),默认值 2000(ms) # rise -- 指定多少次连续成功的健康检查后,即可认定该服务器处于可操作状态,默认值 2 # fall -- 指定多少次不成功的健康检查后,认为服务器为当掉状态,默认值 3 # maxconn -- 指定可被发送到该服务器的最大并发连接数 server localhost 0.0.0.0:2233 weight 3 check inter 2000 rise 2 fall 3 server 192.168.1.100 192.168.1.100:2233 weight 3 check inter 2000 rise 2 fall 3 server 192.168.1.101 192.168.1.101:2233 weight 3 check inter 2000 rise 2 fall 3 #########################HTTP连接的监听配置################################ listen http-in bind *:2212 mode http option httplog log global # 设置健康检查模式 #option httpchk OPTIONS * HTTP/1.1\r\nHost:\ www #option smtpchk # 后台服务器 server localhost 0.0.0.0:2234 weight 3 check inter 2000 rise 2 fall 3 server 192.168.1.100 192.168.1.100:2234 weight 3 check inter 2000 rise 2 fall 3 server 192.168.1.101 192.168.1.101:2234 weight 3 check inter 2000 rise 2 fall 3