HAproxy – 千万级并发负载均衡软件 (实测)
2012-08-13 16:55
821 查看
HAproxy – 千万级并发负载均衡软件【实测】
1, 系统环境:
Haproxy:192.168.179.128
WEB1:192.168.179.128
WEB2:192.168.179.129
2, Haproxy安装:
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]#wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.8.tar.gz
[root@localhost src]# tar zxf haproxy-1.4.8.tar.gz
[root@localhost src]# cd haproxy-1.4.8
[root@localhost haproxy-1.4.8]# uname –a
[root@localhost haproxy-1.4.8]# make TARGET=linux26 PREFIX=/usr/local/haproxy
[root@localhost haproxy-1.4.8]# make install PREFIX=/usr/local/haproxy
3, 修改Haproxy配置:
[root@localhost haproxy-1.4.8]# vi /usr/local/haproxy/haproxy.cfg
global
log 127.0.0.1 local0 ###全局日志
maxconn 4096 ###最大连接数
chroot /usr/local/haproxy
uid 501 ###用户ID
gid 501 ###组ID
daemon ###后台运行
nbproc 1 ###创建进程数
pidfile /usr/local/haproxy/haproxy.pid ###pid文件
defaults
log 127.0.0.1 local3
mode http ###支持的模式
option httplog ###日志格式
option httpclose ###请求完成后关闭http通道
option dontlognull
option forwardfor ###apache日志转发
option redispatch
retries 2 ###重连次数
maxconn 2000
balance roundrobin ###算法类型
stats uri /haproxy-stats ###状态统计页面
#stats auth admin:admin ###状态统计页面用户名密码,可选
contimeout 5000 ###连接超时
clitimeout 50000 ###客户端超时
srvtimeout 50000 ###服务器超时
listen proxy 192.168.179.128:8080 ###访问地址及端口
option httpchk HEAD /index.html HTTP/1.0 ###健康检查页面
server web1 192.168.179.128:80 cookie app1inst1 check inter 2000 rise 2 fall
5
server web2 192.168.179.129:80 cookie app1inst2 check inter 2000 rise 2 fall
5
4, 启动Haproxy:
[root@localhost haproxy-1.4.8]# cd /usr/local/haproxy/
[root@localhost haproxy]# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
5, web1和web2上分别启动http服务并修改首页文件:
[root@localhost haproxy]# /etc/init.d/httpd start
[root@localhost haproxy]# vi /var/www/html/index.html
192.168.179.128 web1 ###128上内容
192.168.179.129 web2 ###129上内容
6, 查看状态页面:
http://192.168.179.128:8080/haproxy-stats
7, Haproxy测试:
[root@localhost ~]# for i in $(seq 10);do curl http://192.168.179.128:8080;done
192.168.179.128 web1
192.168.179.129 web2
192.168.179.128 web1
192.168.179.129 web2
192.168.179.128 web1
192.168.179.129 web2
192.168.179.128 web1
192.168.179.129 web2
192.168.179.128 web1
192.168.179.129 web2
注1:
haproxy重启命令:
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg -st
`cat /usr/local/haproxy/haproxy.pid`
haproxy停止:
killall haproxy
注2:
由于本实验Haproxy与WEB1在同一台服务器上,所以需要注意端口不要冲突。
附Haproxy算法:
一、roundrobin,表示简单的轮询;
二、static-rr,表示根据权重;
三、leastconn,表示最少连接者先处理;
四、source,表示根据请求源IP;
五、uri,表示根据请求的URI;
六、url_param,表示根据请求的URl参数’balance url_param’ requires an URL parameter name
七、hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求;
八、rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每一次TCP请求。
常用算法:roundrobin、source、lestconn。
1, 系统环境:
Haproxy:192.168.179.128
WEB1:192.168.179.128
WEB2:192.168.179.129
2, Haproxy安装:
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]#wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.8.tar.gz
[root@localhost src]# tar zxf haproxy-1.4.8.tar.gz
[root@localhost src]# cd haproxy-1.4.8
[root@localhost haproxy-1.4.8]# uname –a
[root@localhost haproxy-1.4.8]# make TARGET=linux26 PREFIX=/usr/local/haproxy
[root@localhost haproxy-1.4.8]# make install PREFIX=/usr/local/haproxy
3, 修改Haproxy配置:
[root@localhost haproxy-1.4.8]# vi /usr/local/haproxy/haproxy.cfg
global
log 127.0.0.1 local0 ###全局日志
maxconn 4096 ###最大连接数
chroot /usr/local/haproxy
uid 501 ###用户ID
gid 501 ###组ID
daemon ###后台运行
nbproc 1 ###创建进程数
pidfile /usr/local/haproxy/haproxy.pid ###pid文件
defaults
log 127.0.0.1 local3
mode http ###支持的模式
option httplog ###日志格式
option httpclose ###请求完成后关闭http通道
option dontlognull
option forwardfor ###apache日志转发
option redispatch
retries 2 ###重连次数
maxconn 2000
balance roundrobin ###算法类型
stats uri /haproxy-stats ###状态统计页面
#stats auth admin:admin ###状态统计页面用户名密码,可选
contimeout 5000 ###连接超时
clitimeout 50000 ###客户端超时
srvtimeout 50000 ###服务器超时
listen proxy 192.168.179.128:8080 ###访问地址及端口
option httpchk HEAD /index.html HTTP/1.0 ###健康检查页面
server web1 192.168.179.128:80 cookie app1inst1 check inter 2000 rise 2 fall
5
server web2 192.168.179.129:80 cookie app1inst2 check inter 2000 rise 2 fall
5
4, 启动Haproxy:
[root@localhost haproxy-1.4.8]# cd /usr/local/haproxy/
[root@localhost haproxy]# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
5, web1和web2上分别启动http服务并修改首页文件:
[root@localhost haproxy]# /etc/init.d/httpd start
[root@localhost haproxy]# vi /var/www/html/index.html
192.168.179.128 web1 ###128上内容
192.168.179.129 web2 ###129上内容
6, 查看状态页面:
http://192.168.179.128:8080/haproxy-stats
7, Haproxy测试:
[root@localhost ~]# for i in $(seq 10);do curl http://192.168.179.128:8080;done
192.168.179.128 web1
192.168.179.129 web2
192.168.179.128 web1
192.168.179.129 web2
192.168.179.128 web1
192.168.179.129 web2
192.168.179.128 web1
192.168.179.129 web2
192.168.179.128 web1
192.168.179.129 web2
注1:
haproxy重启命令:
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg -st
`cat /usr/local/haproxy/haproxy.pid`
haproxy停止:
killall haproxy
注2:
由于本实验Haproxy与WEB1在同一台服务器上,所以需要注意端口不要冲突。
附Haproxy算法:
一、roundrobin,表示简单的轮询;
二、static-rr,表示根据权重;
三、leastconn,表示最少连接者先处理;
四、source,表示根据请求源IP;
五、uri,表示根据请求的URI;
六、url_param,表示根据请求的URl参数’balance url_param’ requires an URL parameter name
七、hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求;
八、rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每一次TCP请求。
常用算法:roundrobin、source、lestconn。
相关文章推荐
- 千万级高并发负载均衡软件haproxy配置文件详解
- 千万级高并发负载均衡软件HAPROXY
- 初识千万级高并发负载均衡软件HaProxy
- 千万级高并发负载均衡软件HAproxy
- 千万级并发HAproxy均衡负载系统介绍
- 软件级负载均衡设备对比(LVS/HAProxy/Nginx)
- 高性能负载均衡软件 HAProxy
- 千万级并发HAproxy均衡负载系统介绍
- lvs、haproxy、nginx 负载均衡的比较分析
- Heartbeat+Haproxy实现负载均衡高可用 推荐
- lvs、haproxy、nginx 负载均衡的比较分析
- lvs、haproxy、nginx 负载均衡的比较分析
- HAproxy研究与应用(千万级并发、负载均衡)
- Haproxy+Keepalived实现负载均衡高可用
- Http负载均衡之:HAProxy
- 千万级并发HAproxy均衡负载系统介绍
- lvs、haproxy、nginx 负载均衡的比较分析
- lvs、haproxy、nginx 负载均衡的比较分析
- lvs、haproxy、nginx 负载均衡的比较分析
- lvs(+keepalived)、haproxy(+heartbeat)、nginx 负载均衡的比较分析