RabbitMQ集群使用Haproxy负载均衡

时间:2021-08-26 01:14:31

(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