RabbitMQ集群使用Haproxy负载均衡
(1)、下载
http://www.haproxy.org/#down
(2)、解压
tar -zxvf haproxy-1.5.18.tar.gz
(3)、安装
1)、编译
make TARGET=linux26 PREFIX=/usr/local/haproxy
2)、安装(指定目录)
make install PREFIX=/usr/local/haproxy
3)、新建一个配置文件
global log 127.0.0.1 local0 # log 127.0.0.1 local1 maxconn 4000 ulimit-n 8000 uid 0 gid 0 # chroot /tmp # nbproc 2 # daemon # debug # quiet listen proxy1 0.0.0.0:8000 mode http # source 127.0.0.2:0 # log 127.0.0.1 local0 # log 127.0.0.1 local1 log global #mode tcp cookie SERVERID insert indirect balance roundrobin #dispatch 127.0.0.1:3130 #dispatch 127.0.0.1:31300 #dispatch 127.0.0.1:80 #dispatch 127.0.0.1:22 option httpchk server test 10.1.1.2:80 cookie cookie1 check inter 300 # server nc 127.0.0.1:8080 cookie cookie1 check inter 300 # server tuxlocal0 10.101.23.9:80 cookie cookie1 check # server tuxlocal1 127.0.0.1:80 cookie cookie1 check # server tuxlocal2 127.0.0.1:80 cookie cookie2 check # server tuxlocal3 127.0.0.1:80 cookie cookie3 check # server tuxlocal4 127.0.0.1:80 cookie cookie4 check # server vax 10.101.14.1:80 cookie cookie1 check #server tuxceleron 10.101.0.1:80 cookie cookie2 check #server telnet 127.0.0.1:23 #server ssh 127.0.0.1:22 #server local 127.0.0.1:3130 cookie cookie3 check #server ko 127.0.0.1:0 cookie cookie3 check #server local 127.0.0.1:8001 cookie cookie3 check #server local 127.0.0.1:3130 #server celeron 10.101.0.1:80 cookie srv1 #server celeron 10.101.0.1:31300 #server local 10.101.23.9:31300 contimeout 3000 clitimeout 150000 srvtimeout 150000 maxconn 60000 redispatch retries 3 grace 3000 #rsprep ^Server.* Server:\ IIS #rspdel ^Server.* #rspadd Set-Cookie:\ mycookie=0;\ path=/ #rsprep ^(Date:\ )([^,]*)(,\ )(.*) LaDate\ est:\ \4\ (\2) # force connection:close #reqidel ^Connection: #rspidel ^Connection: #reqadd Connection:\ close #rspadd Connection:\ close # processing options #option keepalive option forwardfor option httplog option dontlognull # reqirep ^(Test:\ ) \0_toto_\1_toto # reqidel ^X-Forwarded-for: # reqirep ^(GET|POST)\ .* \0 # reqirep ^(Host:|Connection:|User-agent:|Cookie:)\ .* \0 # reqideny ^ listen proxy1 0.0.0.0:8001 mode http #mode tcp dispatch 127.0.0.1:80 #dispatch 127.0.0.1:31300 #dispatch 127.0.0.1:80 #dispatch 127.0.0.1:22 #server tuxlocal 127.0.0.1:80 cookie cookie1 check #server tuxceleron 10.101.0.1:80 cookie cookie2 check #server telnet 127.0.0.1:23 #server ssh 127.0.0.1:22 #server local 127.0.0.1:3130 cookie cookie3 check #server local 127.0.0.1:3130 #server celeron 10.101.0.1:80 cookie srv1 #server celeron 10.101.0.1:31300 #server local 10.101.23.9:31300 contimeout 3000 clitimeout 150000 srvtimeout 150000 maxconn 60000 redispatch retries 3 grace 3000 #rsprep ^Server.* Server:\ IIS #rspdel ^Server.* rspadd Set-Cookie:\ SERVERID=12345678;\ path=/ #rsprep ^(Date:\ )([^,]*)(,\ )(.*) LaDate\ est:\ \4\ (\2) listen proxy1 0.0.0.0:3128 disabled mode http cookie SERVERID insert indirect #dispatch 127.0.0.1:8080 server srv1 127.0.0.1:8080 #server srv2 192.168.12.3:8080 contimeout 3000 clitimeout 450000 srvtimeout 450000 maxconn 60000 redispatch retries 3 grace 3000 rspdel ^Via:.* monitor-net 192.168.12.252/30 listen proxy2 0.0.0.0:3129 disabled mode http transparent # dispatch 127.0.0.1:80 contimeout 3000 clitimeout 150000 srvtimeout 150000 maxconn 60000 retries 3 grace 3000 # log 10.101.11.1 local1 # log 10.101.11.1 local2 # cliexp ^(.*ASPSESSIONID.*=)(.*) \1FENICGGCBECLFFEEOAEAIFGF # cliexp ^(GET.*)(.free.fr)(.*) \1.online.fr\3 # cliexp ^(POST.*)(.free.fr)(.*) \1.online.fr\3 # cliexp ^Proxy-Connection:.* Proxy-Connection:\ close # srvexp ^(Location:\ )([^:]*://[^/]*)(.*) \1\3 listen health 0.0.0.0:3130 mode health clitimeout 1500 srvtimeout 1500 maxconn 6000 grace 0 listen health 0.0.0.0:31300 mode health option httpchk clitimeout 1500 srvtimeout 1500 maxconn 6000 grace 0 listen rabbitmq_local_cluster 0.0.0.0:25672 #定义名称及监控地址 #开启TCP模式 mode tcp option tcplog #简单的轮询 balance roundrobin #rabbitmq集群节点配置 server rabbitmq1 0.0.0.0:5672 check inter 5000 rise 2 fall 2#每5000毫秒检查一次,如果2次检查失败,则认为服务器不可用 server rabbitmq2 0.0.0.0:5673 check inter 5000 rise 2 fall 2 server rabbitmq3 0.0.0.0:5674 check inter 5000 rise 2 fall 2 ##服务器定义(check指健康状况检查,inter 5000指检测频率;rise 2指从离线状态转换至正常状态需要成功检查的次数;fall 2指失败2次即认为服务器不可用) #配置haproxy web监控,查看统计信息 listen private_monitoring :8100 mode http #以Http模式 option httplog stats enable #设置haproxy监控地址为http://localhost:8100/stats stats uri /stats stats refresh 30s #添加用户名密码认证 stats auth admin:1234
4)、指定配置文件
./haproxy -f /usr/local/haproxy/sbin/haproxy.cfg