您的位置:首页 > 其它

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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: